# 219.contains-duplicate-ii

## Statement

Metadata
• Link: 存在重复元素 II
• Difficulty: Easy
• Tag: `数组` `哈希表` `滑动窗口`

``````输入：nums = [1,2,3,1], k = 3

``````输入：nums = [1,0,1,1], k = 1

``````输入：nums = [1,2,3,1,2,3], k = 2

• `1 <= nums.length <= 105`
• `-109 <= nums[i] <= 109`
• `0 <= k <= 105`

Metadata
• Link: Contains Duplicate II
• Difficulty: Easy
• Tag: `Array` `Hash Table` `Sliding Window`

Given an integer array `nums` and an integer `k`, return `true` if there are two distinct indices `i` and `j` in the array such that `nums[i] == nums[j]` and `abs(i - j) <= 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
``````

Constraints:

• `1 <= nums.length <= 105`
• `-109 <= nums[i] <= 109`
• `0 <= k <= 105`

## Solution

``````import enum
from typing import List

class Solution:
def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
m = {}
for i, a in enumerate(nums):
if a in m.keys():
if (i - m[a]) <= k:
return True
m[a] = i
return False
``````