题目要求:
分析:
将元素以其为下标获取数组中的值,如果对应元素大于0,则取反,这样没有出现过的元素为下标的元素依然为正。
具体代码如下:
public class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
List<Integer> result = new ArrayList<>();
if(nums == null || nums.length == 0){
return result;
}
for(int i = 0; i < nums.length; i++) {
int index = Math.abs(nums[i])-1;
if(nums[index] > 0){
nums[index] = -nums[index];
}
}
for(int i = 0; i<nums.length; i++) {
if(nums[i] > 0){
result.add(i+1);
}
}
return result;
}
}