数组,删除对,返回计数

时间:2018-10-09 12:44:19

标签: java arrays

说我有一个数组:

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;
}

编辑:

即使我在循环时扣除了1,我仍然得到IndexOutOfBoundsException +我试图删除j元素(与i匹配的元素)时似乎出现了问题。我想将它们都从数组中删除,这会使我的Pairs变量增加1。

0 个答案:

没有答案