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

【C++算法】59.哈希表_存在重复元素 II

文章目录

    • 题目链接:
    • 题目描述:
    • 解法
    • C++ 算法代码:
    • 图解


题目链接:

219. 存在重复元素 II


题目描述:

dc20f1ad09d4780f8809994964360699


解法

哈希表


C++ 算法代码:

class Solution 
{
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {// 创建一个无序映射(哈希表),用于存储每个元素及其最新出现的索引// 键(key):数组元素的值// 值(value):该元素在数组中最近一次出现的索引位置unordered_map<int, int> hash;// 遍历数组中的每一个元素for(int i = 0; i < nums.size(); i++){// 检查当前元素是否已经在哈希表中出现过if(hash.count(nums[i])){// 如果元素已存在,计算当前索引与上次出现索引的差值// 如果差值小于等于k,表示找到了满足条件的重复元素if(i - hash[nums[i]] <= k) return true;}// 无论元素是否重复,都更新哈希表中该元素的最新索引// 如果是新元素,这一步将其添加到哈希表中// 如果是已存在的元素,这一步将更新其索引为当前位置hash[nums[i]] = i;}// 如果遍历完整个数组都没有找到满足条件的重复元素,返回falsereturn false;}
};

图解

例如:nums = [1,0,1,1], k = 1

  1. 处理 nums[0] = 1

    • 检查:hash.count(1) 返回 0(元素 1 不存在于哈希表中)

    • 插入:hash[1] = 0(将元素 1 的索引 0 存入哈希表)

    • 哈希表现在:hash = {1:0}

  2. 处理 nums[1] = 0

    • 检查:hash.count(0) 返回 0(元素 0 不存在于哈希表中)

    • 插入:hash[0] = 1(将元素 0 的索引 1 存入哈希表)

    • 哈希表现在:hash = {1:0, 0:1}

  3. 处理 nums[2] = 1

    • 检查:hash.count(1) 返回 1(元素 1 存在于哈希表中)

    • 访问:hash[1] 返回 0(获取元素 1 的索引,为 0

    • 计算:i - hash[nums[i]] = 2 - 0 = 2

    • 判断:2 <= 1 为假,不满足条件

    • 更新:hash[1] = 2(更新元素 1 的索引为当前位置 2

    • 哈希表现在:hash = {1:2, 0:1}

  4. 处理 nums[3] = 1

    • 检查:hash.count(1) 返回 1(元素 1 存在于哈希表中)

    • 访问:hash[1] 返回 2(获取元素 1 的索引,为 2

    • 计算:i - hash[nums[i]] = 3 - 2 = 1

    • 判断:1 <= 1 为真,满足条件

    • 返回:true

相关文章:

  • 排序算法复杂度及稳定性全解析(八种排序)
  • Spark-SQL核心编程(二)
  • HL7消息编辑器的使用手册
  • 案例 - 登录认证:保障系统安全访问的实现
  • 登录校验:保障系统安全访问的关键技术解析
  • 成员访问运算符重载(详解)
  • 【双指针】专题:LeetCode 202题解——快乐数
  • v3 自定义导航头部
  • OpenCV学习之获取图像所有点的坐标位置(二)
  • 从图像“看出动作”
  • Redis集群部署三主三从(docker-compose方式)
  • 2025.04.15【Connection】| 生信数据可视化:连接图绘制指南
  • 跨域(CORS)的几种方式
  • 双重路由引入的环路,选路次优的产生以及解决方法
  • 2025最新版flink2.0.0安装教程(保姆级)
  • 层次式架构核心:中间层的功能、优势与技术选型全解析
  • Oracle中用户密码过期修改为不限制
  • Linux系统-scp命令--两台服务器之间传输文件
  • 利用纯JS开发浏览器小窗口移动广告小功能
  • 通过微信APPID获取小程序名称
  • 甘肃省原副省长赵金云被开除公职,甘肃省委表态:坚决拥护党中央决定
  • 体坛联播|皇马上演罢赛闹剧,杨瀚森宣布参加NBA选秀
  • 传媒湃︱《金陵晚报》副刊“雨花石”5月起改为免费刊登
  • 记录发生真相,南沙岛礁生态调查纪实片《归巢》发布
  • 五一假期上海路网哪里易拥堵?怎么错峰更靠谱?研判报告来了
  • 涉军民事案件类型日益增多,最高法新规明晰管辖争议问题