Skip to content

Latest commit

 

History

History

219 - Contains Duplicate II

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

219. Contains Duplicate II share

Problem Statement

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

Solutions

package main

func containsNearbyDuplicate(nums []int, k int) bool {
	if len(nums) <= 1 {
		return false
	}

	set := make(map[int]int)

	// iterate over the array
	for i, v := range nums {
		// check if the value is in the set
		if _, ok := set[v]; ok {
			// if the value is in the set,
			// check if the difference between the current index and the index of the value in the set
			// is less than or equal to k
			if i-set[v] <= k {
				return true
			}
		}
		// add the value to the set
		set[v] = i
	}

	return false
}