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