题目链接:LeeCode448找到所有数组中消失的数字
题目描述:
遍历一遍原始数组,每一个num[num[i]]变成负数,缺失的下标位置则不会变成负数,所以就可以找出来了
class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
List<Integer> list=new ArrayList<>();
for (int i = 0; i < nums.length; i++) {
if(nums[Math.abs(nums[i])-1]>0)
nums[Math.abs(nums[i])-1]=0-nums[Math.abs(nums[i])-1];
}
for (int i = 0; i < nums.length; i++) {
if(nums[i]>0)list.add(i+1);
}
return list;
}
}