本题其实可以用暴力直接做,计数器做,不过应该会超时,所以我用了这种方法;
1.另外开一个arr数组大的数组chak;
2.一次循环,在指定的chak元素++;
3.判断chak元素等于2的元素,符合就加入list集合里面
class Solution {
public List<Integer> findDuplicates(int[] arr) {
List<Integer> list = new ArrayList<>();
int[] chak = new int[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
int a = arr[i];
chak[a]++;
int t = chak[arr[i]];
if (t == 2) {
list.add(a);
}
}
return list;
}