题目:
题解:
func getID(x, w int) int {if x >= 0 {return x / w}return (x+1)/w - 1
}func containsNearbyAlmostDuplicate(nums []int, k, t int) bool {mp := map[int]int{}for i, x := range nums {id := getID(x, t+1)if _, has := mp[id]; has {return true}if y, has := mp[id-1]; has && abs(x-y) <= t {return true}if y, has := mp[id+1]; has && abs(x-y) <= t {return true}mp[id] = xif i >= k {delete(mp, getID(nums[i-k], t+1))}}return false
}func abs(x int) int {if x < 0 {return -x}return x
}