所以我目前正在做一个任务,我目前被卡住了。我无法弄清楚如何获取索引左侧的所有元素并将它们从 Arraylist 中删除。这些是确切的说明:对于这个程序,给定序列,删除所有的零,如果有的话,以及它们左边的所有数字。然后找到最大的剩余数字,如果是偶数则减去 2,或者如果是奇数,则减去 1。如果两个或多个数字并列为最大数字,则使用最右边的数字作为最大数字。重复将规则应用于序列。删除序列需要多少步?这是我到目前为止所拥有的:(对不起,如果代码有点乱)import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws FileNotFoundException { File inputFile = new File("input.txt"); Scanner scanFile = new Scanner(inputFile); String input; int testCase; String testCaseS = ""; int zero; //testCase = scanFile.nextInt(); //System.out.println(testCase); input = scanFile.next(); //System.out.println(input); //input = input.replaceAll(",", ""); String arr = input; String[] items = arr.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(","); int[] results = new int[items.length]; for (int i = 0; i < items.length; i++) { try { results[i] = Integer.parseInt(items[i]); } catch (NumberFormatException nfe) { }; } //for (int o = 0; o <= items.length; o++) //System.out.println(results[o]); boolean choice = false; int counter = 0; List<Integer> intList = new ArrayList<Integer>(); for (int i : results) { intList.add(i); } if (!choice) { for (int u = 0; u < items.length; u++) { if (results[u] == 0) counter++; //intList.removeAll(Arrays.asList(0 )); } } int zeroindex = intList.indexOf(0); System.out.println(intList); }}
添加回答
举报
0/150
提交
取消