【LeetCode】219.存在重复元素II

1. 题目

2. 分析

3. 代码

python 复制代码
class Solution:
    def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
        num2index = defaultdict(list)
        for idx,num in enumerate(nums):
            num2index[num].append(idx)
        
        for key, val in num2index.items():
            if len(val) >= 2:
                for i in range(len(val)-1):
                    nex = val[i+1]
                    if abs(nex - val[i]) <= k:
                        return True
        return False

上面这版代码空间复杂度还不是最优,原因是存储了非窗口内的元素。最优解的做法是:在滑动窗口的过程中动态的维护一个哈希表,哈希表中存储的内容是某个元素上一次出现的下标。 我记得滑动窗口类的题目好多都是这种做法。

相关推荐
zhangfeng113311 小时前
大语言模型 bpe算法 后面对接的是 one-hot吗 nn.Embedding
算法·语言模型·embedding
Pluchon11 小时前
硅基计划4.0 算法 动态规划高阶
java·数据结构·算法·leetcode·深度优先·动态规划
科学计算技术爱好者11 小时前
NVIDIA GPU 系列用途分类梳理
人工智能·算法·gpu算力
程序员敲代码吗11 小时前
嵌入式C++开发注意事项
开发语言·c++·算法
好学且牛逼的马11 小时前
【Hot100|14-LeetCode53. 最大子数组和】
数据结构·算法·leetcode
无心水11 小时前
17、Go协程通关秘籍:主协程等待+多协程顺序执行实战解析
开发语言·前端·后端·算法·golang·go·2025博客之星评选投票
007php00711 小时前
mac笔记本中在PHP中调用Java JAR包的指南
java·ide·python·面试·职场和发展·pycharm·php
东华果汁哥11 小时前
【机器视觉 行人检测算法】FastAPI 部署 YOLO 11行人检测 API 服务教程
算法·yolo·fastapi
每天学一点儿11 小时前
[SimpleITK] 教程 63:配准初始化 (Registration Initialization) —— 从几何对齐到手动干预。
算法
君义_noip12 小时前
信息学奥赛一本通 1463:门票
c++·算法·哈希算法·信息学奥赛·csp-s