假设我有一个数组:
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。