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

【力扣】219. 存在重复元素 II

题目

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。
示例 1:
输入:nums = [1,2,3,1], k = 3
输出:true
示例 2:
输入:nums = [1,0,1,1], k = 1
输出:true
示例 3:
输入:nums = [1,2,3,1,2,3], k = 2
输出:false
提示:
1 <= nums.length <= 105
-109 <= nums[i] <= 109
0 <= k <= 105

思路一

暴力解法,使用两层for循环遍历所有元素,判断num[i]==num[j] && Math.abs(i-j)<=k。时间复杂度为On²,能解题目,但是力扣无法通过,会超时。

代码

class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {for (int i = 0; i < nums.length - 1; i++) {for (int j = i + 1; j < nums.length; j++) {if (nums[i] == nums[j] && Math.abs(i - j) <= k) {return true;}}}return false;}
}

思路二

滑动窗口,使用left,right两个指针维护一个大小为k的窗口,使用set来判断窗口内是否有相同的元素。

代码

class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {//用来判断是否有相同元素Set<Integer> set = new HashSet<>();int left = 0;for (int right = 0; right < nums.length; right++) {//如果窗口大小大于k了,则左指针前移,缩小窗口大小,if (Math.abs(left - right) > k) {set.remove(nums[left]);left++;}//如果当前的窗口内有相同的元素,则返回trueif (set.contains(nums[right])) {return true;} else {//没有相同的元素就添加到set中set.add(nums[right]);}}return false;}
}
http://www.lryc.cn/news/525934.html

相关文章:

  • 头歌实训作业 算法设计与分析-贪心算法(第5关:求解流水作业调度问题)
  • Hadoop•搭建完全分布式集群
  • SQL-leetcode—1141. 查询近30天活跃用户数
  • 总结与展望,龙蜥社区第 30 次运营委员会会议线上召开
  • idea对jar包内容进行反编译
  • c++----------------------多态
  • C语言 指针_野指针 指针运算
  • 【JavaEE进阶】Spring留言板实现
  • 第25篇 基于ARM A9处理器用C语言实现中断<一>
  • 面向通感一体化的非均匀感知信号设计
  • 修改docker共享内存shm-size
  • WIN11 UEFI漏洞被发现, 可以绕过安全启动机制
  • 网安加·百家讲坛 | 樊山:数据安全之威胁建模
  • jQuery阶段总结(二维表+思维导图)
  • 【LLM】RedisSearch 向量相似性搜索在 SpringBoot 中的实现
  • 如何为64位LabVIEW配置正确的驱动程序
  • Redis(5,jedis和spring)
  • Git 小白入门教程
  • Python从0到100(八十五):神经网络与迁移学习在猫狗分类中的应用
  • 代码随想录刷题day14(2)|(链表篇)02.07. 链表相交(疑点)
  • C++ 复习总结记录九
  • 数据库性能优化(sql优化)_SQL执行计划02_yxy
  • Vivado生成X1或X4位宽mcs文件并固化到flash
  • 在K8S中使用Values文件定制不同环境下的应用配置详解
  • 边缘网关具备哪些功能?
  • ThinkPHP 8 操作JSON数据
  • 环境变量配置与问题解决
  • pytorch2.5实例教程
  • 【开源免费】基于SpringBoot+Vue.JS智慧图书管理系统(JAVA毕业设计)
  • 基于自然语言处理的垃圾短信识别系统