leetcode 219. Contains Duplicate II (重复数字II)

[LeetCode]--219. Contains Duplicate II Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is at most k.想法:这题比较简单,可 阅读详情

Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.

Example 1:

Input: nums = [1,2,3,1], k = 3
Output: true
Example 2:

Input: nums = [1,0,1,1], k = 1
Output: true
Example 3:

Input: nums = [1,2,3,1,2,3], k = 2
Output: false

给出一个数组,让判断是否存在nums[i] == nums[j] 而且下标i和j的差<=k

思路:

既然要求相等的俩数下标的差不能超过k,
那么当然是下标的差越小越好,
当遍历到相同的数字时,如果同时有好几个相同的数字,那自然是取之前遍历过的最右边的数字的下标,
比如example2中的[1,0, 1, 1],遍历到最后一个1的时候,它前面有2个相同的数字1,要选最右边的1,这样下标差才最小。

既然这样,只需要一个hash map, 保存数字和它对应的最新的下标(最右边的),
遇到相同的数字时,用当前下标减去hash map中保存的下标,只要差<=k,就返回true.
其实不需要计算差的绝对值,因为是从左到右遍历的,右边的下标肯定比左边的大。

public boolean containsNearbyDuplicate(int[] nums, int k) {
    HashMap<Integer, Integer> map = new HashMap<>();
    int i = 0;
    
    for(int num : nums) {
        if(map.containsKey(num)) {
            if(i - map.get(num) <= k) return true;           
        }
        map.put(num, i);
        i++;
    }
    return false;
}
保姆级教程:在Rockchip RK3588 SDK中,如何为你的新硬件板子创建第一个DTS文件 本文提供在Rockchip RK3588 SDK中为自定义硬件创建首个DTS文件的详细教程。通过分析DTS在RK3588开发中的角色、快速定位参考设计、实操步骤及调试验证方法,帮助开发者高效完成硬件板级配置,特别适合嵌入式Linux系统开发者参考。 阅读详情

相关推荐

从玩具到工业:手把手教你用Webots仿真Scara抓取(逆解实战篇)

本文详细介绍了如何在Webots仿真环境中实现Scara机械臂的逆解计算与抓取操作,涵盖从环境配置、逆运动学算法到轨迹规划与实时控制的完整流程。通过实战案例演示,帮助读者掌握机械臂逆解的核心技术,并应用于工业自动化场景,提升Scara机械臂的编程与控制能力。

weixin_30932215的博客 503

LeetCode 219 Contains Duplicate II(包含重复数字2)(*)

翻译给定一个整型数组和一个整型数K,原文Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is a

nomasp 4202

CIC-IDS数据集特征介绍

###1、简介 通信安全机构(CSE)与加拿大网络安全研究所(CIC)合作项目,该项目对自1998年以来现有的11个数据集的评估表明,大多数数据集(比如经典的KDDCUP99,NSLKDD等)已经过时且不可靠。其中一些数据集缺乏流量多样性和容量,一些数据集没有涵盖各种已知的攻击,而另一些数据集将数据包有效载荷数据匿名化,这不能反映当前的趋势。有些还缺少特征集和元数据。 CIC-IDS-2017数据集包含良性和最新的常见攻击,类似真实世界数据(PCAPs)。 它的数据采集截至2017...

蓝亚之舟的博客 3万+

Visio空间坐标系高效绘制实战:从轴线刻度到三维模拟与导出

技术绘图中,空间坐标系是论文、技术文档和汇报材料的基石。Visio作为一款矢量建模工具,常被误当作电子白板使用,导致轴线粗细不一、刻度错位、箭头风格混乱等常见问题。本文从绘图底层思维切入,系统讲解了坐标轴与刻度网格搭建、图层与组合管理、三维视觉模拟等关键环节,并覆盖了高频问题排查,例如如何控制导出PNG的边距、优化文件卡顿、处理格式兼容性等。通过灵活运用对齐、分布、智能参考线和自定义模具,即使是二维矢量工具也能模拟出立体感清晰的球体与网格底面,让图表兼具专业性与可维护性。文章总结出一套从建模到导出的完整解决

weixin_34252686的博客 345

DiffusionDrive实战:如何用截断扩散模型3个月搞定自动驾驶轨迹规划(附代码)

本文详细介绍了如何利用DiffusionDrive截断扩散模型,在三个月内快速构建端到端的自动驾驶轨迹预测系统。内容涵盖从环境搭建、数据处理、模型架构解析到训练调参和推理优化的完整实战流程,并提供了关键代码示例,旨在帮助开发者高效实现高质量的自动驾驶轨迹规划。

weixin_35578748的博客 143

【第三方互联】3、腾讯QQ授权第三方登录

当我们创建的 QQ 互联应用成功后,我们便可以开始使用该应用来实现 QQ 互联 一、获取 APP ID 和 APP Key 1、找到我的应用 2、点击应用,进入详情 这样,我们就获取到了 APP ID 和 APP Key 二、进行开发 1、将 APP ID 、APP Key,以及该应用的信息放入项目中的配置文件中,我使用的是SpringBoot,我放在了 application.y...

JACKAL 22万+

LeetCode-219-Contains Duplicate II-E(检验是否有重复数字2)

Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.(...

文卿的藏剑山庄 218

第4章 部署负载均衡 Keepalived + HAProxy

本章在所有 Master 节点部署 Keepalived + HAProxy,为 kube-apiserver 提供高可用入口。Keepalived 实现 VIP(192.168.3.59)漂移,HAProxy 轮询转发请求至三个 Master 的 6443 端口(监听 6444 避免冲突)。健康检查脚本连续 5 次失败则停止 Keepalived,触发 VIP 自动切换。本章还包含配置详解、日常运维和问题排查。

幸福街--linux技术分享 120

219. Contains Duplicate II

219. Contains Duplicate II方法1: hash易错点Complexity Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the a...

wilzxu的博客 132

科研级实战】YOLOv11 pose部署至RK3588全流程:让姿态估计模型在边缘端毫秒级运行,我来帮你突破人体行为分析落地壁垒

在智慧安防人体行为分析场景中,基于YOLOv11 pose的模型在云端推理单帧耗时150ms,硬件成本超15000元;经本方案部署到RK3588后,单帧推理耗时降至30ms,硬件成本仅4000元,且关键点检测准确率高达93%以上。在运动姿态评估场景,同款技术路径使模型边缘端推理速度提升6倍,姿态分类精度达95%。这意味着,你也能让自己的姿态估计模型在边缘设备上实现的工业化落地,接下来让我们开启从模型训练到端侧部署的实战征程。

m0_71589036的博客 222

《SAP FICO系统配置从入门到精通共40篇》030、集成配置:FI与生产计划(PP)的自动科目确定

FI和PP的自动科目确定,本质上是把生产业务翻译成会计语言。翻译规则就藏在那些配置表里。配的时候多想一步:这个业务动作,在财务眼里是什么?是材料消耗?是产出入库?还是工费分摊?想清楚这个,再看配置界面,那些代码就不是天书了。最好的测试方式,是月底关账前,让生产部门跑一遍所有类型的生产订单。配置对不对,业务最知道。

985大学毕业,前某大厂员工,啥都会点的程序员! 573

LeetCode 219.Contains Duplicate II

LeetCode 219.Contains Duplicate IIDescription: Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the ab

My Blog 203

《PCI Express体系结构导读1》-- PCI简介

请先阅读完一遍此书再来看文章哦,这样效率更高~

HoneyIC的博客 151

[Java]Contains Duplicate II 包含重复数字

leetcode 原题链接: https://leetcode.com/problems/contains-duplicate-ii/ Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that num

成为一个合格的IT工作者 975

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LeetCode(219) Contains Duplicate II

题目Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is at most k.分析题目描述:给定

指尖飞舞 1184

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Contains Duplicate系列三连- set,map的应用

又做完了一个系列,感觉收获良多。一共三道题,第一道和第二道都是easy,第三道是medium,不过我感觉第三道更接近hard。217. Contains DuplicateGiven an array of integers, find if the array contains any duplicates. Your function should return true if any val...

lujie1996的博客 266

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[leetcode]219. Contains Duplicate II

[leetcode]219. Contains Duplicate II Analysis ummmm~—— [ummmm~] Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nu...

weixin_32135877的博客 160

Leetcode 219 Contains Duplicate II

思路一: set。始终保持set的size小于等于k。遍历数组,如果数组中有这个数字,返回true;如果没有则加入set,然后这时要check set的size是否小于等于k,大于k的话则要删除最早加入set的数字。这边我们需要明白的一点是set中的数字都是数组中连续的数字,最多只保存k个数字,所以当新来一个数字的时候,此时set中的数字就是这个新来的数字的前k(也可能比k少)个数字,那么如果set中有和新来的数字相同的数字,则我们找到重复。下面展示代码: class Solution { pub.

GoodJobJasper的博客 160

【python3】leetcode 219. Contains Duplicate II(easy)

 219. Contains Duplicate II(easy) Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute diffe...

momottyy的专栏 250

LeetCode 219. Contains Duplicate II

Problem 原题链接 Notes 题目的意思是,给定一个数组v和一个数字k,让你找到数组v中是否有相同的元素且下标之差绝对值不超过k。 利用pair,记录原数组以及下标的对应关系,再进行排序,接着顺序查找即可。 Codes class Solution { public: static bool cmp(pair<int, int>a, pair<int, int&g...

dong的博客 134

leetcode【217+219 Contains Duplicate I+II】【python】

这两道题都是让我们找到数组中是否有重复的数字,这种查找题首先就要考虑hash查找了,毕竟快。 217这道直接用dict就好,出现超过两次直接返回即可。class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool

u014251967的博客 734

【LeetCode】219. Contains Duplicate II 解题报告(Python)

【LeetCode】Contains Duplicate II 解题报告标签(空格分隔): LeetCode题目地址:https://leetcode.com/problems/contains-duplicate-ii/description/题目描述:Given an array of integers and an integer k, find out whether there are t

负雪明烛 2529

leetcode Contains Duplicate系列问题,哈希表,红黑树,二叉查找树

首先第一题leetcode 217 contains duplicate是要在一组正整数里面找出重复的那一个,可以构造一个哈希表来查找,也可以构造二叉查找树来查找,哈希表查找的时间效率比二叉查找树好,但是二叉查找树的空间效率比哈希表好,都可以试试。基于哈希表的可以用unordered_set,基于红黑树(一种平衡二叉查找树)的可以用set。 class Solution { public:

默默 769

[leetcode] 219 Contains Duplicate II(map)

思路一: 使用map映射 记录出现过的nums[i],并记录对应的位置i ;当出现冲突时,比较两者位置关系,如果之差小于等于k,则返回true,否则更改为新位置;如果没有冲突,则说明不含有重复元素。 class Solution { public: bool containsNearbyDuplicate(vector &nums, int k) { map mp;

NK_test的博客 1252

leetcode——219 Contains Duplicate II(包含重复的数II)

解题思路: 定义一个长度最大为k的滑动窗口,用一个set维护窗口内的数字判断是否出现重复,使用两个指针start和end标记滑动窗口的两端,初始都是0,然后end不断进行扩展,扫描元素判断是否出现重复元素,直到发现end-start>k, 就开始移动start,并且在set中移除对应的元素。如果以为扫描到数组末尾还没有发现重复元素,那就可以返回false。

591

【leetcode】219(Easy)Contains Duplicate II

解题思路 创建一个map,如果当前数字没有出现过,就存下这个数字和这个数字的位置 如果当前数字出现过就查看这个数字上一次出现的位置,如果二者之差小于k就返回true。 提交代码 class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) { Map<Integer, Integer> map...

AXIMI的博客 169
上一篇: PyTorch 识别 MNIST 手写数字
下一篇: leetcode 205. Isomorphic Strings(同构字符串)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值