news 2026/5/8 7:53:53

LeetCode 存在重复元素 II题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 7:45:31

FPGA+USB3.0工业相机:开源硬件设计、图像处理与高速传输实战

1. 项目概述&#xff1a;当工业相机遇上FPGA与USB3.0最近在捣鼓一个挺有意思的开源项目&#xff0c;来自GitHub上的circuitvalley/USB_C_Industrial_Camera_FPGA_USB3。光看这名字&#xff0c;信息量就很大了&#xff1a;一个基于USB Type-C接口的工业相机&#xff0c;核心是FP…

作者头像 李华
网站建设 2026/5/8 7:44:37

终极指南:使用NVIDIA Profile Inspector解锁显卡隐藏性能

终极指南&#xff1a;使用NVIDIA Profile Inspector解锁显卡隐藏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾对NVIDIA控制面板中有限的选项感到失望&#xff1f;想要深度优化游戏性能却…

作者头像 李华
网站建设 2026/5/8 7:31:30

MySQL主从数据库高可用架构实践:全链路深度剖析与实战优化指南

引言&#xff1a;主从延迟——数据库高可用架构的“阿喀琉斯之踵” 在现代企业级应用架构中&#xff0c;MySQL主从复制&#xff08;Master-Slave Replication&#xff09;作为数据冗余、读写分离和高可用性保障的核心技术&#xff0c;已经成为绝大多数互联网公司和传统企业的标…

作者头像 李华
网站建设 2026/5/8 7:28:26

DAC使用关键注意事项

DAC&#xff08;数模转换器&#xff09;的使用注意事项主要围绕硬件设计、软件配置和系统集成三个方面&#xff0c;不同应用场景下的侧重点各有不同。 一、硬件设计与选型注意事项 注意事项具体说明潜在问题与解决方案电源与参考电压DAC的输出精度和稳定性高度依赖于电源和参…

作者头像 李华