找到所有数组中消失的数字
分析
其实可能有很多种写法吧,但是时间O(N),空间O(1)还是有一些小小的技巧的,其实就是原地修改数组,数组中的每个元素都对着一个下标。把这个下下标对应的地方标记一下就好了。
class Solution {
public:
vector<int> findDisappearedNumbers(vector<int>& nums) {
vector<int>ans;
if (!nums.size())return ans;
int n = nums.size();
for (int i = 0; i < nums.size(); i++) {
int index = (nums[i] - 1) % n;
nums[index] += n;
}
for (int i = 0; i < nums.size(); i++) {
if (nums[i] <= n) ans.push_back(i+1);
}
return ans;
}
};