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;
    }
};