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

LeetCode - 存在重复元素

219. 存在重复元素 II

这道题可以用两个方法解决。

  1. 哈希表

从左到右遍历数组,并将数组的下标存到hash中,在遍历数字的过程中,如果hash中不存在nums[i],将nums[i]加入到hash当中,若存在,则判断下标之间的关系即可。

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {unordered_map<int, int> hash;for (int i = 0; i < nums.size(); i++){if (hash.count(nums[i])){if (i - hash[nums[i]] <= k) return true;}hash[nums[i]] = i;}return false;}
};
  1. 滑动窗口

要满足ABS(I - J) <= K,可以想象一个窗口,窗口中的数字必然满足条件。当nums中的每个长度不超过k + 1的滑动窗口,同一个滑动窗口中的任意两个下标差绝对不会超过k。

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {unordered_set<int> s;int length = nums.size();for (int i = 0; i < length; i++) {if (i > k) {s.erase(nums[i - k - 1]);}if (s.count(nums[i])) {return true;}s.emplace(nums[i]);}return false;}
};
http://www.lryc.cn/news/323072.html

相关文章:

  • RUST egui体验
  • 详解llamaindex
  • 管理类联考–复试–英文面试–问题--规划介绍原因做法--汇总
  • 成都百洲文化传媒有限公司电商新浪潮的领航者
  • 【Unity】获取游戏对象或组件的常用方法
  • html5cssjs代码 024 响应式布局示例
  • json详解
  • C语言之---柔性数组
  • 鸿蒙错误记录
  • Leetcode热题100:图论
  • 刚进公司第一天-电脑环境搭建
  • kubernetes集群报 unable to load bootstrap kubeconfig处置思路
  • MacBook远程桌面Windows使用Microsoft Remote Desktop for Mac_亲测使用
  • Huggingface 笔记:大模型(Gemma2B,Gemma 7B)部署+基本使用
  • WebGL 理论基础 01 WebGL 基础概念
  • Leetcode 28:找出字符串中第一个匹配项的下标
  • docker opensearch arm64 运行失败解决方案
  • C#、ASP、ASP.NET、.NET、ASP.NET CORE区别、ASP.NET Core其概念和特点、ASP.NET Core个人心得体会
  • SpringMVC 简介及入门级的快速搭建详细步骤
  • Flutter编译卡在Running Gradle task ‘assembleDebug
  • 基于springboot的牙科就诊管理系统
  • C语言 指针练习
  • 【力扣 TOP100】 无重复字符的最长子串
  • K8S node磁盘清理
  • 2024年上半年软考,现在开始学真的来得及吗?
  • SfM——八点法计算F矩阵(基础矩阵)与三角测量
  • 分布式事务的解决方案--Seata架构
  • 【 React 】React JSX 转换成真实DOM的过程?
  • [Open3d]: 知识记录
  • css面试题