[算法][力扣219]存在重复元素2

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,

满足 numsi == numsj 且 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

解法一:双重for循环

解法二:使用Map,记录每个元素的值和位置

java 复制代码
public class Test04_001 {

    public static void main(String[] args) {
        Test04_001 test04 = new Test04_001();
        boolean ret = test04.containsNearbyDuplicate(new int[]{1, 0, 1, 1}, 1);
        System.out.println(ret);
    }

    public boolean containsNearbyDuplicate(int[] nums, int k) {
        HashMap<Integer, Integer> map = new HashMap<>(); // <num, index>
        for (int i = 0; i < nums.length; i++) {
            int num = nums[i];
            if (map.containsKey(num) && i - map.get(num) <= k) {
                return true;
            } else {
                map.put(num, i);
            }
        }
        return false;
    }
}
相关推荐
yi01126 分钟前
Leetcode 49 用 “身份证‘‘巧解
人工智能·笔记·python·算法·leetcode·哈希表
liuchangng33 分钟前
类Jev项目Kev从入门到实战(7):如何选型:决策树与 checklist
算法·决策树·机器学习
yi01138 分钟前
DAY22: LeetCode 733:图像渲染——从二维网格开始理解 DFS 和 BFS
数据结构·笔记·python·算法·leetcode·深度优先·宽度优先
Pniubi1 小时前
力扣41缺失的第一个正数(哈希表法)
算法·leetcode·职场和发展
地平线开发者1 小时前
MQBench QAT量化实践指南
人工智能·算法·自动驾驶
今夜有雨.1 小时前
图像运算、掩膜/ROI 与绘制交互
c语言·数据结构·c++·qt·算法·计算机视觉
UIU1141 小时前
P1028 [NOIP 2001 普及组] 数的计算
c++·算法
Keven_112 小时前
BUG:UVA116
算法·bug·图论
Henry-SAP2 小时前
Beam大模型开源引爆AI热潮
算法
垆边人似月.2 小时前
日志时间窗口内的最大并发请求数(100分 / 滑动窗口 + 排序)
数据结构·c++·算法