让数组中出现的值取对应下标的相反数
代码
class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
List<Integer> results = new ArrayList<>();
int n=nums.length;
for(int num=0;num<n;num++){
if(nums[Math.abs(nums[num])-1]>0){ //因为数组的值可能已经被取了相反数了,所以要求绝对值防止下表为负数
nums[Math.abs(nums[num])-1]=-nums[Math.abs(nums[num])-1];
}
}
for(int i=0;i<n;i++){
if(nums[i]>0){
results.add(i+1);
}
}
return results;
}
}