# 219. 存在重复元素 II

[https://leetcode-cn.com/problems/contains-duplicate-ii/](https://leetcode-cn.com/problems/contains-duplicate-ii/)

## 解法一：

维护一个最多元素为k的set，利用set中无重复元素的特性，一次遍历数组，每次将一个元素写入set，超出k个则将最先写入的元素移出。若检测到相同元素，说明他们之间的距离不超过k，符合题意。

```javascript
/**
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */
var containsNearbyDuplicate = function(nums, k) {
    s = new Set()
    for(let i in nums) {
        if (s.has(nums[i])) return true
        s.add(nums[i])
        if (s.size > k) {
            s.delete(nums[i-k])    //移出最早加入的元素
        }
    }
    return false
};
```
