Golang | Leetcode Golang题解之第220题存在重复元素III

题目:

题解:

Go 复制代码
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] = x
        if i >= k {
            delete(mp, getID(nums[i-k], t+1))
        }
    }
    return false
}

func abs(x int) int {
    if x < 0 {
        return -x
    }
    return x
}
相关推荐
G.O.G.O.G38 分钟前
《LeetCode SQL 从入门到精通(MySQL)》09
sql·mysql·leetcode
Wang's Blog3 小时前
Go-Zero基础入门5: 探究go-zero如何基于gRPC扩展客户端
开发语言·后端·golang·go-zero
江畔柳前堤12 小时前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
Hazenix16 小时前
Go 指南:一篇文章速通 Golang
开发语言·后端·golang
灯澜忆梦16 小时前
GO_复合类型---指针
开发语言·后端·golang
名字还没想好☜17 小时前
Go slice 的 append 陷阱:共享底层数组导致的数据串改
开发语言·后端·golang·go·slice
灯澜忆梦18 小时前
GO_面向对象_方法
开发语言·golang
布朗克16818 小时前
Go 入门到精通-16-字符串深入
开发语言·后端·golang·字符串
北冥you鱼19 小时前
Go flag 包详解:从命令行解析到实战应用
开发语言·后端·golang
To_OC19 小时前
LC 22 括号生成:刷完这道题,我终于搞懂回溯剪枝了
javascript·算法·leetcode