LeetCode 448. 找到所有数组中消失的数字
原题链接
简单
作者:
大明湖的鱼
,
2021-01-12 18:01:26
,
所有人可见
,
阅读 253
思路
- 把nums里的数字作为index,将nusm[index]置为负值
- 遍历数组,为正值的index即为不包含的
- 注意注释中的错误写法
class Solution {
public:
vector<int> findDisappearedNumbers(vector<int>& nums) {
vector<int> ans;
for(int i= 0; i<nums.size();i++){
nums[abs(nums[i]) -1] = -abs(nums[abs(nums[i]) -1]);
//if(nums[i] > 0) nums[nums[i]-1] = -abs(nums[nums[i] -1]);这样写会跳过一些index
}
for(int i = 0 ;i< nums.size() ;i++){
if(nums[i]>0) ans.push_back(i+1);
}
return ans;
}
};