func containsNearbyDuplicate(nums []int, k int) bool { if k <= 0 { return false } queue := make([]int, 0) set := make(map[int]struct{}) i, n := 0, len(nums) for i = 0; i < k && i < n; i++ { queue = append(queue, nums[i]) if _, ok := set[nums[i]]; ok { return true } else { set[nums[i]] = struct{}{} } } for ; i < n; i++ { queue = append(queue, nums[i]) if _, ok := set[nums[i]]; ok { return true } else { delete(set, queue[0]) set[nums[i]] = struct{}{} queue = queue[1:] } } return false }