LeetCode 面试经典150题 219.存在重复元素II

题目 :给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 ij ,满足 nums[i] == nums[j]abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false

思路

代码

java 复制代码
class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        int n = nums.length;
        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            if (i > k)  set.remove(nums[i - k -1]);
            if (set.contains(nums[i]))  return true;
            set.add(nums[i]);
        }
        return false;
    }
}

性能

时间复杂度o(n)

空间复杂度o(k)

相关推荐
QiLinkOS13 小时前
第三视觉理解徐玉生与他的商业活动(28)
大数据·c++·人工智能·算法·开源协议
wabs66614 小时前
关于动态规划【力扣1143.最长公共子序列的思考】
算法·leetcode·动态规划
剑挑星河月14 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
Robot_Nav15 小时前
MPPI 局部规划器实验设计讲解
人工智能·算法·mppi
mingo_敏15 小时前
Mean-Teacher 均值教师自训练框架详解
算法·均值算法
水木流年追梦16 小时前
agent面试必备31- AI Agent 核心进阶:工具路由(Tool Routing)
数据库·人工智能·oracle·面试·职场和发展·embedding
星空露珠16 小时前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
笨笨没好名字16 小时前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
jinyishu_16 小时前
常见排序算法详解
数据结构·算法·排序算法
手写码匠16 小时前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc