1

假设我有一个数组:

int[] numbersArray = new int[]{10, 20, 20, 10, 10, 30, 50, 10, 20};

我想返回相同数字对的计数并将它们从我的数组中删除。

传递 numbersArray 时方法的结果应该是 3。我坚持使用我的解决方案。

n - 数组中的元素数

ar - 给定 int[] 数组

public static int myMethod(int n, int[] ar) {
    int pairs=0;
    List<Integer> myList = new ArrayList<>();
    for(int i : ar) {
        myList.add(i);
        System.out.println(i);
    }

    for(int i=0; i<n-1; i++) {
        for(int j=i+1; j<n-2; j++) {
            if (myList.get(i) == myList.get(j)) {
                pairs++;
                System.out.println(pairs);
                myList.remove(i);
                myList.remove(j);

            }
        }
    }

    return pairs;
}

编辑:

我得到 IndexOutOfBoundsException 即使我在循环时扣除了 1 + 当我试图删除 j 元素(与 i 匹配的那个)时,问题似乎正在发生。我想从我的数组中删除它们,这应该将我的对变量增加 1。

4

0 回答 0