Find All Duplicates in an Array
给一个数组, 里面的数字出现一次或者两次, 求出现一次的数字的数组.
这题要用set很简单, 不用的话, 可以把负数当作set查重用. 当数字做为坐标的时候 用abs取下值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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; } }; |