用的arraylist,究竟是哪里的错。
import java.util.ArrayList; import java.util.Scanner; /** * 单组输入。 * * 第1行一个正整数m表示一共有m个操作。 * 接下来m行表示m个操作,每行输入的第1个数字为op(操作类型)。 * 如果op=1表示第(1)种操作,后面接着两个数字a和b分别表示在第a个位置插入b(a以及a以后的数字将后移)。 * 如果op=2表示第(2)种操作,后面接着一个数字a,表示删除第a个数字。 * 如果op=3表示第(3)种操作,查询当前数列的状态。 * (m<=1000,输入操作保证合法。) * 输出描述 * 对于每一个op=3,输出当前数列的状态(输出数列中每一个元素的值)。 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int op,insertLoc,insertNum,delLoc ; ArrayList<Integer> list = new ArrayList<>(); for (int i = 0; i < m; i++) { op = sc.nextInt(); if (op == 1){ insertLoc = sc.nextInt(); insertNum = sc.nextInt(); insert(list,insertLoc,insertNum); }else if (op == 2){ delLoc= sc.nextInt(); delete(list,delLoc); }else if (op == 3){ outPut(list); } } } private static void insert(ArrayList<Integer> list,int insertLoc,int insertNum){ list.add(insertLoc-1,insertNum); } private static void delete(ArrayList<Integer> list,int delLoc){ list.remove(delLoc-1); } private static void outPut(ArrayList<Integer> list){ for (int i = 0; i < list.size()-1; i++) { System.out.print(list.get(i)); System.out.print(" "); } System.out.print(list.get(list.size()-1)); System.out.println(); } }
全部评论
(2) 回帖