Find All Duplicates in an Array
给一个数组, 里面的数字出现一次或者两次, 求出现一次的数字的数组.
这题要用set很简单, 不用的话, 可以把负数当作set查重用. 当数字做为坐标的时候 用abs取下值
class Solution {
public:
vector<int> findDuplicates(vector<int>& nums) {
vector<int> res;
int n = nums.size();
for(int i = 0; i < n; i++){
if(nums[abs(nums[i]) - 1] < 0){
res.push_back(abs(nums[i]));
}else{
nums[abs(nums[i]) - 1] = -nums[abs(nums[i]) - 1];
}
}
return res;
}
};