LeetCode题解之Contains Duplicate II

时间:2023-12-05 19:52:14

1、题目描述

LeetCode题解之Contains Duplicate II

2、题目分析

使用哈希表 和分情况讨论的方法

3、代码

bool containsNearbyDuplicate(vector<int>& nums, int k) {

        if( nums.size() ==  ){
return false;
} if( k >= nums.size() ){
map<int,int> m;
for( auto n: nums){
m[n]++;
if(m[n] > ){
return true;
}
}
return false;
} map<int,int>m;
for( int i = ; i < nums.size() - k +; i++){
if( i == ){
for(int j = i; j <= k; j++){
m[nums[j]]++;
if(m[nums[i+k]] > )
return true;
}
}else{
if( m[nums[i-]] <= ){
m.erase(nums[i-]);
}else {
m[nums[i-]]--;
}
if( i+k < nums.size() ){
m[nums[i+k]]++;
if(m[nums[i+k]] > )
return true;
}
} } return false; }