找到数组中所有消失的数字
给你一个含 n
个整数的数组 nums
,其中 nums[i]
在区间 [1, n]
内。请你找出所有在 [1, n]
范围内但没有出现在 nums
中的数字,并以数组的形式返回结果。
java
public List<Integer> findDisappearedNumbers(int[] nums) {
for (int i = 0; i < nums.length; i++) {
int index = Math.abs(nums[i]);
nums[index - 1] = nums[index - 1] < 0 ? nums[index - 1] : -nums[index - 1];
}
List<Integer> list = new ArrayList<>();
for (int i = 0; i < nums.length; i++) {
if(nums[i]>0){
list.add(i+1);
}
}
return list;
}
标记索引法