当前位置: 首页 > news >正文

LeetCode 存在重复元素 II题解

LeetCode 存在重复元素 II题解

题目描述

给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引ij,使得nums[i] = nums[j],并且abs(i - j) <= k

示例

输入:nums = [1,2,3,1],k = 3
输出:true

输入:nums = [1,0,1,1],k = 1
输出:true

解题思路

方法:哈希表

思路

  • 使用哈希表来解决这个问题。
  • 遍历数组,对于每个元素,检查它是否已经在哈希表中。
  • 如果在哈希表中存在,计算当前索引与哈希表中存储的索引之间的差值。
  • 如果差值小于等于 k,返回 True。
  • 如果不在哈希表中或差值大于 k,将当前元素和其索引存入哈希表。
  • 如果遍历完成,返回 False。

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组的长度。每个元素最多被访问一次。
  • 空间复杂度:O(n),需要额外的空间来存储哈希表。

代码实现

方法:哈希表

# 存在重复元素 II(哈希表) def contains_nearby_duplicate(nums, k): hash_map = {} for i, num in enumerate(nums): if num in hash_map and i - hash_map[num] <= k: return True hash_map[num] = i return False # 测试 def test_contains_nearby_duplicate(): nums = [1, 2, 3, 1] k = 3 print(contains_nearby_duplicate(nums, k)) # 输出:True nums = [1, 0, 1, 1] k = 1 print(contains_nearby_duplicate(nums, k)) # 输出:True if __name__ == "__main__": test_contains_nearby_duplicate()

测试用例

测试用例 1:基本情况

输入:nums = [1,2,3,1],k = 3
输出:true

测试用例 2:相邻重复元素

输入:nums = [1,0,1,1],k = 1
输出:true

总结

存在重复元素 II 是一个经典的哈希表问题,它可以通过哈希表来高效地解决。

哈希表法的核心思想是:遍历数组,检查每个元素是否已经在哈希表中存在,如果存在且索引差值小于等于 k,返回 True。

掌握哈希表的使用方法,对于解决类似的问题非常重要。

http://www.jsqmd.com/news/775297/

相关文章:

  • 构建代码知识图谱:从AST解析到可视化分析的工程实践
  • 终极指南:如何用Whisky在Apple Silicon Mac上原生运行Windows程序
  • 什么是去中心化(在加密货币与区块链领域)
  • 别再踩坑了!Uniapp原生插件从云端到本地的完整配置与调试指南(含自定义基座打包避坑)
  • CF2194E题解
  • pikachu靶场教学之任意文件下载
  • 2026年4月当下评价好的光伏电站运维推荐,高低压配电柜安装/动力电池生产/重卡充电站合伙,光伏电站运维哪家好 - 品牌推荐师
  • ESP32物联网宠物项目:低功耗设计与状态机实现详解
  • Blender 3MF插件完整指南:为什么3D打印工作流需要这个工具
  • 2026年AI外呼系统技术深度解析:大脚丫通讯全链路闭环方案技术复盘
  • NVIDIA显卡优化工具终极指南:6个步骤快速掌握游戏性能调优
  • 还在手动逐字转写录音?2026年这4款AI工具,1分钟教会你如何把录音转成文字
  • KORG logue SDK开发指南:从DSP算法到硬件合成器自定义单元实战
  • 智能代码注释生成器:从AST解析到LLM集成的工程实践
  • 避开SMC仿真那些坑:从Scope数据导出到高清相轨迹绘制的完整避坑指南
  • Godot开发者必备:awesome-godot资源精选库使用指南
  • AI辅助CTF解题:大语言模型在网络安全竞赛中的实战应用
  • AI编程助手经验管理系统:从数据孤岛到可复用知识库
  • Cortex-A75内存系统与缓存优化技术解析
  • 为AI智能体集成短信能力:Sendly Skills实战指南
  • FPGA+USB3.0工业相机:开源硬件设计、图像处理与高速传输实战
  • Arm超分辨率技术解析与移动端优化实践
  • AI生成+短剧出海东南亚,内容、支付、增长全攻略!
  • 宏智树AI:从大纲到定稿,一个平台完成你的论文写作闭环
  • 终极指南:使用NVIDIA Profile Inspector解锁显卡隐藏性能
  • RelayPlane Proxy:本地AI成本管家,智能路由与预算管控实战
  • VLM研究
  • 深度解析:如何高效提取冒险岛WZ游戏资源的技术方案
  • ARM Cortex-A7内存系统架构与优化实践
  • 深度解析Android虚拟相机:实现摄像头内容替换的终极方案