This is a leetcode question: 219. Contains Duplicate II
I used the insert
function for hash map. Can someone please tell me what is wrong with the first code?
//wrong solution
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
unordered_map<int,int>m;
int n=nums.size();
for(int i=0;i<n;i++){
if(m.find(nums[i])!=m.end() && abs(i-m[nums[i]]) <=k) return true;
m.insert(pair<int,int>(nums[i],i)); //this is the faulty part
}
return false;
}
};
//Right
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
unordered_map<int,int>m;
int n=nums.size();
for(int i=0;i<n;i++){
if(m.find(nums[i])!=m.end() && abs(i-m[nums[i]]) <=k) return true;
m[nums[i]]=i;
}
return false;
}
};