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)

相关推荐
SharkWeek.1 小时前
【力扣Hot 100】普通数组2
数据结构·算法·leetcode
XianxinMao8 小时前
RLHF技术应用探析:从安全任务到高阶能力提升
人工智能·python·算法
hefaxiang8 小时前
【C++】函数重载
开发语言·c++·算法
exp_add39 小时前
Codeforces Round 1000 (Div. 2) A-C
c++·算法
查理零世10 小时前
【算法】经典博弈论问题——巴什博弈 python
开发语言·python·算法
神探阿航10 小时前
第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
java·算法·蓝桥杯
皮肤科大白10 小时前
如何在data.table中处理缺失值
学习·算法·机器学习
不能只会打代码12 小时前
蓝桥杯例题一
算法·蓝桥杯
OKkankan12 小时前
实现二叉树_堆
c语言·数据结构·c++·算法
Ciderw13 小时前
MySQL为什么使用B+树?B+树和B树的区别
c++·后端·b树·mysql·面试·golang·b+树