LC 442 Find All Duplicates in an Array(M)
解题思路
public List<Integer> findDuplicates(int[] nums) {
List<Integer> dupList = new ArrayList<Integer>();
for(int i = 0; i < nums.length; i++){
int index = Math.abs(nums[i]) - 1;
if(nums[index]>0){
nums[index] = -nums[index];
}else{ //如果数值已经变负数,表示这是重复的数值
dupList.add(Math.abs(index + 1));
}
}
return dupList;
}Last updated