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
}
相关推荐
蛋蛋的就会顺顺的23 分钟前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
Navigator_Z3 小时前
LeetCode //C - 1291. Sequential Digits
c语言·算法·leetcode
0+1118 小时前
算法 --栈
算法·leetcode
圣保罗的大教堂8 小时前
leetcode 3723. 数位平方和的最大值 中等
leetcode
浅念-9 小时前
动态规划:线性DP——多状态DP与子数组专题笔记
c++·笔记·算法·leetcode·职场和发展·动态规划·力扣
紫洋葱hh10 小时前
Go 入门基础:类型、变量与运算符
开发语言·后端·ai·golang
学电子她就能回来吗11 小时前
LeetCode Hot 100|滑动窗口专题零基础学习笔记
笔记·学习·leetcode
拾饵94212 小时前
面试回答整理(Q1–Q3)
leetcode
codeejun12 小时前
每日一Go·MySQL-7、MySQL 核心原理全景图谱
开发语言·mysql·golang
虚无的纽扣12 小时前
【力扣刷题】第四天:三数之和、四数之和
算法·leetcode·职场和发展