> For the complete documentation index, see [llms.txt](https://code-snippets.hbamithkumara.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://code-snippets.hbamithkumara.com/leetcode/problems/201-300/contains-duplicate-ii.md).

# 219. Contains Duplicate II

### Description

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.

### Constraints

### Approach

### Links

* GeeksforGeeks
* [Leetcode](https://leetcode.com/problems/contains-duplicate-ii/)
* [ProgramCreek](https://www.programcreek.com/2014/05/leetcode-contains-duplicate-ii-java/)
* YouTube

### **Examples**

{% tabs %}
{% tab title="Example 1" %}
**Input:** nums = \[1, 2, 3, 1], k = 3

**Output:** true
{% endtab %}

{% tab title="Example 2" %}
**Input:** nums = \[1, 0, 1, 1], k = 1

**Output:** true
{% endtab %}

{% tab title="Example 3" %}
**Input:** nums = \[1, 2, 3, 1, 2, 3], k = 2

**Output:** false
{% endtab %}
{% endtabs %}

### **Solutions**

{% tabs %}
{% tab title="Solution 1" %}

```java
/**
 * Time complexity : O(N*min(N, K))
 * Space complexity : O(1)
 */

class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        for(int i = 0; i < nums.length; i++) {
            for(int j = Math.max(i - k, 0); j < i; j++) {
                if(nums[i] == nums[j]) {
                    return true;
                }
            }
        }
        return false;
    }
}
```

{% endtab %}

{% tab title="Solution 2" %}

```java
/**
 * Time complexity : O(N)
 * Space complexity : O(min(N, K))
 */
 
 class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        Set<Integer> set = new HashSet();
        for(int i = 0; i < nums.length; i++) {
            if(!set.add(nums[i])) return true;
            if(set.size() > k) {
                set.remove(nums[i-k]);
            }
        }
        return false;
    }
}
```

{% endtab %}
{% endtabs %}

### **Follow up**

*
