欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 存在重复元素II(简单)

存在重复元素II(简单)

2025/5/4 16:39:45 来源:https://blog.csdn.net/dlz_yhn/article/details/147683684  浏览:    关键词:存在重复元素II(简单)

这个问题可以使用哈希表来高效解决,我们可以在遍历数组的同时记录每个数字最近出现的索引,并检查当前数字是否之前出现过且索引差满足条件。

class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {HashMap<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int num = nums[i];// 如果当前数字之前出现过,并且索引差 <= kif (map.containsKey(num) && i - map.get(num) <= k) {return true;}// 更新当前数字的最新索引map.put(num, i);}return false;}
}
  1. 我们使用一个 HashMap 来存储数字和它们最近一次出现的索引。

  2. 遍历数组时,对于每个数字:

    • 检查它是否已经在哈希表中存在

    • 如果存在且当前索引与之前索引的差 ≤ k,返回 true

    • 否则更新哈希表中该数字的索引为当前索引

  3. 如果遍历完整个数组都没有找到满足条件的数字对,则返回 false

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词