title: 442. Find All Duplicates in an Array
categories: leetcode
comments: false
class Solution {
public:
vector<int> findDuplicates(vector<int>& nums) {
vector<bool> vec(100001,false);
vector<int> ret;
for(int a:nums){
if(vec[a]) ret.push_back(a);
else vec[a] = true;
}
return ret;
}
};
class Solution {
public:
vector<int> findDuplicates(vector<int>& nums) {
int n = nums.size();
vector<int> ret;
for(int i=0;i<n;++i){
int idx = abs(nums[i])-1;
if(idx < n && nums[idx]>0) nums[idx] *=-1;
else if(idx<n && nums[idx]<0) ret.push_back(abs(nums[i]));
}
return ret;
}
};
- time complexity
O(n)
- space complexity
O(1)