1 回答

TA貢獻1851條經(jīng)驗 獲得超4個贊
IndexOutOfBoundsException當(dāng)您嘗試從數(shù)組中刪除重復(fù)項時,您會收到colors。這是因為remove()的方法ArrayList可以接受 anObject或 anint并且您正在傳遞一個int。這意味著您實際上正在嘗試刪除特定索引,在您的示例中是索引 20,但該索引在您的數(shù)組中不存在。
您可以修改代碼以根據(jù)索引正確刪除值。
static int sockMerchant(int n, int[] ar) {
ArrayList<Integer> colors = new ArrayList<Integer>(10);
int pairs = 0;
for (int i = 0; i < n; i++) {
if (!colors.contains(ar[i])) {
colors.add(ar[i]);
} else {
pairs++;
colors.remove(color.indexOf(ar[i]));
}
}
System.out.println(pairs);
return pairs;
}
添加回答
舉報