# 219. Contains Duplicate II

Given an array of integers and an integer  k , find out whether there are two distinct indices  i  and  j  in the array such that nums[i] = nums[j] and the absolute difference between  i  and  j  is at most  k.

Example 1:

``````Input: nums = [1,2,3,1], k = 3
Output: true
``````

Example 2:

``````Input: nums = [1,0,1,1], k = 1
Output: true
``````

Example 3:

``````Input: nums = [1,2,3,1,2,3], k = 2
Output: false
``````

``````class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
unordered_map<int, int> m;
for (int i = 0; i < nums.size(); ++i) {
if (m.find(nums[i]) != m.end() && i - m[nums[i]] <= k) return true;
else m[nums[i]] = i;
}
return false;
}
};
``````

Github 同步地址：

https://github.com/grandyang/leetcode/issues/219

Contains Duplicate

Contains Duplicate III

https://leetcode.com/problems/contains-duplicate-ii/

https://leetcode.com/problems/contains-duplicate-ii/discuss/61372/Simple-Java-solution

https://leetcode.com/problems/contains-duplicate-ii/discuss/61390/C%2B%2B-solution-with-unordered_set

LeetCode All in One 题目讲解汇总(持续更新中…)

 微信打赏 Venmo 打赏
（欢迎加入博主的知识星球，博主将及时答疑解惑，并分享刷题经验与总结，试运营期间前五十位可享受半价优惠～）

×

Help us with donation