// 存在重复元素IIpackage hashtable
import("math")funcContainsNearbyDuplicate(nums []int, k int)bool{
min := math.MaxInt
repeatMap :=map[int][]int{}for index, value :=range nums {
slice := repeatMap[value]
slice =append(slice, index)
repeatMap[value]= slice
}for_, value :=range repeatMap {// size里面存储的是索引
min =getMin(value, min, k)}if min <= k && min >0{returntrue}returnfalse}// 取坐标数组相减的最小值funcgetMin(size []int, min int, k int)int{
length :=len(size)if length <2{return min
}for i := length -1; i >=1; i--{for j := i -1; j >=0; j--{
min :=minValue(min, size[i]-size[j])if min <= k {return min
}}}return min
}// 取最小值funcminValue(x, y int)int{if x < y {return x
}return y
}// 力扣官方题解funcContainsNearbyDuplicateII(nums []int, k int)bool{
pos :=map[int]int{}for i, num :=range nums {if p, ok := pos[num]; ok && i-p <= k {returntrue}
pos[num]= i
}returnfalse}