LeetCode219

LeetCode-219. 存在重复元素 II.(java) 对于没有工作或者即将失业要重新面试的小伙伴而言,bug菌想接着把上几个月更新的专栏《每日一题LeetCode》给重新捯饬起来,只为帮助小伙伴们,能顺利上岸,收到自己心仪的offer,面试第一关, 就是算法题。因为我始终坚信,变强绝对不是一朝一夕,而是贵在长久坚持,持之以恒。所以,赶紧跟着bug菌的步伐卷起来吧⏰,变强从这一刻开始➕。时间复杂度:O(n^2)。空间复杂度:O(n)。... 阅读详情

219. 存在重复元素 II

 


给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。

示例 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

 

这道题意思好像是让用hash来做

 

解法1:我想的这个方法很蛋疼,1830ms。。。强行ac的

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
		for(int i=0;i<nums.size();i++){
			for(int j=i+1;j<=i+k;j++)
			{
				if(j>=nums.size()) break;
				if(nums[i]==nums[j])	
				     return true;
			}
		}
		return false;
    }
};




int main(){
	int n,m,k;
	vector<int> nums;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>m;
		nums.push_back(m);
	}
	cin>>k;
	Solution solution;
	cout<<solution.containsNearbyDuplicate(nums,k)<<endl;

	system("pause");
}

 

解法2:hash,以索引作为value,对应的值作为key,然后通过hash去做,需要注意的是如果出现相同的值,但是索引差比k大,就把索引更新。

 

​
#include<iostream>
#include<vector>
#include <string>
#include<unordered_map>
using namespace std;

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
		if(nums.size()==0 || k<=0) return false; 
		unordered_map<int ,int> res;

		for(int i=0;i<nums.size();i++){
		if(res.find(nums[i])==res.end())  //如果找到相同的value,更新key    
			res[nums[i]]=i;    
		//	res.insert({ nums[i],i});     //在vs中,这样插入会出现问题
		else
		{
			if(i-res[nums[i]]<=k)
				return true;
			else
			    res[nums[i]]=i;

		}
	}
		return false;
	}

};

int main(){
	int n,m,k;
	vector<int> nums;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>m;
		nums.push_back(m);
	}
	cin>>k;
	Solution solution;
	cout<<solution.containsNearbyDuplicate(nums,k)<<endl;

	system("pause");
}

​

 

晟矽微MC32F7361定时器的使用案例说明 110所以TIMER0所用的频率是FCPU的1/64,也就是8/64MHZ. 为1/8MHZ。//io口下拉电阻 1:enable 0:disablea。//io口上拉电阻 1:enable 0:disable。//io口下拉电阻 1:enable 0:disable。//io口上拉电阻 1:enable 0:disable。//io口下拉电阻 1:enable 0:disable。//io口上拉电阻 1:enable 0:disable。 阅读详情

相关推荐

FCN---训练cityspaces

未经允许,不要随意转载! 最近想试试用FCN训练自己的数据集,想想标注是一件很费劲的事,于是就想到了用其他库里的数据,这里选用了cityspaces,默认已经配置好FCN. 1、下载cityspaces https://www.cityscapes-dataset.com/ 需要注册一个账号 cityspaces包含2...

wangyu088的专栏 2030

leetcode:219. 存在重复元素 II

题目来源 leetcode 题目描述 题目解析 哈希表 从左到右遍历数组nums,当遍历到下标iii时,如果存在下标j<ij < ij<i使得nums[i]==nums[j]nums[i] == nums[j]nums[i]==nums[j],则当i−j<=ki - j <= ki−j<=k时即找到了两个符号要求的下标j和i。 如果在下标iii之前存在多个元素都和nums[i]nums[i]nums[i]相等,为了判断是否存在满足nums[i]==nums[j]nums

OceanStar的博客 345

别再买错磁铁了!手把手教你为TLE5012B/AS5047等磁编码器选配和安装径向充磁磁铁

本文详细解析了为TLE5012B/AS5047等磁编码器选配和安装径向充磁磁铁的关键要点。从充磁方向的物理本质到供应商沟通技巧,再到安装工艺的黄金法则,帮助工程师避免常见错误,确保磁编码器稳定工作。特别强调了径向充磁的重要性及验证方法,并提供了尺寸选择、温度特性和抗干扰设计的实用建议。

weixin_26750481的博客 314

LeetCode219:存在重复元素

LeetCode219:存在重复元素 给你一个整数数组nums 和一个整数k ,判断数组中是否存在两个 不同的索引i和j ,满足 nums[i] == nums[j] 且 abs(i - j)

m0_63743577的博客 280

DEXPI与Proteus XML:解锁过程工业P&ID数据互操作性的技术核心

本文深入探讨了DEXPI与Proteus XML在过程工业P&ID数据互操作性中的核心技术。通过解析DEXPI标准的开源特性和Proteus XML的架构设计,揭示了其在跨平台数据交换中的关键作用,并结合CADMATIC和西门子COMOS的实战案例,展示了如何实现高效的数据集成与转换。

weixin_29195615的博客 383

AI医疗影像诊断工具2025 完整教程

本教程所述工具均为辅助诊断设备,不可替代执业医师判断。部署使用需遵守当地医疗器械管理法规。推荐开源框架组合:代码太多打包上传网盘了 自行下载。2025年的AI医疗影像诊断工具将以。

m0_60084632的博客 2027

力扣(leetcode)第219题存在重复元素II(Python)

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k。如果存在,返回 true;否则,返回 false。最后,我写了一篇MySQL教程,里面详细的介绍了MySQL的基本概念以及操作指令等内容,欢迎阅读!输入:nums = [1,2,3,1,2,3], k = 2。输入:nums = [1,2,3,1], k = 3。输入:nums = [1,0,1,1], k = 1。

qq_58737789的博客 515

YOLOv11改进 | 引入DEConv细节增强卷积模块:恢复细节信息,提升小目标检测精度

摘要: YOLOv11在目标检测中面临小目标检测精度不足的问题,主要由于细节信息丢失。本文提出引入DEConv(细节增强卷积)模块,通过多分支卷积和残差连接恢复高频细节,提升小目标检测性能。DEConv结合3×3卷积与空洞卷积增强边缘信息,并自适应融合特征,兼容YOLOv11的P3层(小目标关键层)且计算高效。实验表明,该改进在无人机航拍、显微镜图像等密集小目标场景中显著减少漏检,同时保持轻量化和实时性优势。代码实现可直接嵌入现有YOLO架构,仅需替换P3层卷积模块。

走向CTO的路上... 948

Leetcode-219: 存在重复元素 II【20220119打卡题】

Leetcode-219: 存在重复元素 II【20220119打卡题】

道纪书生的博客 768

串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE

一文搞定,赶紧收藏吧

记得诚 3万+

MoveIt 运动学、运动规划、混合规划、move_group

混合规划是运动规划方法的一个术语,它将异构运动规划器结合起来,以产生更稳健或反应更快的解决方案。这种通用方法在导航领域已经非常成熟,并在导航2等流行项目中成功实施。MoveIt 的混合规划架构结合了一对全局规划器和局部规划器,它们以不同的规划速度和问题范围并行、并发运行。全局规划器的任务是解决全局运动规划问题,这与 “感知-规划-行动 ”应用中使用的规划器非常相似。所使用的规划器算法应该是完整的,因此假定其计算时间相对较慢。此外,全局规划器不要求实时安全,这意味着无法保证规划器在特定期限内找到解决方案。

机器人控制与仿真应用 2128

【简单】力扣算法题解析LeetCode219:存在重复元素Il

题目要求在整数数组 nums 中判断是否存在两个不同索引 i 和 j,满足 nums[i] == nums[j] 且索引差 ≤ k。通过哈希表记录元素最近出现的索引,遍历数组时检查当前元素是否在哈希表中存在且距离符合条件。若存在则返回 true,否则更新哈希表并继续遍历。该方法时间复杂度 O(n),空间复杂度 O(n),高效解决大规模数据问题。Java 实现中,哈希表动态覆盖旧索引,确保每次检查最小距离,代码简洁且性能优越。

ylumwd的博客 408

YoloV8优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4263

力扣第219题“存在重复元素 II”

本文详细解读了力扣第219题“存在重复元素 II”,通过使用滑动窗口和哈希表的方法高效地解决了这一问题,并提供了详细的解释和模拟面试问答。希望读者通过本文的学习,能够在力扣刷题的过程中更加得心应手。

10年数据\经营分析经验,现任大厂数据分析负责人 607

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

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

219. 存在重复元素 II【 力扣(LeetCode) 】

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j)

yyh520025的博客 797

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Leetcode 周赛219题解

leetcode周赛219 https://leetcode-cn.com/contest/weekly-contest-219/ 难度顺序:A≤B≤C≤DA\le B\le C\le DA≤B≤C≤D。 代码分为头文件和Solution主体部分,头文件在文末。 5625. 比赛中的配对次数 提示: 1 <= n <= 200 思路: 按题意模拟即可。 时间复杂度:O(log(n))O(log(n))O(log(n)). class Solution { public: int numb

tomjobs的博客 462

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【力扣】219存在重复元素II

package Leetcode真题分门别类.查找表相关问题; import java.util.HashSet; /** * @Author bennyrhys * @Date 2020-05-24 16:09 * 思路: * 查找表+滑动窗口k+1大小 * * 复杂度: * 时间O(n) * 空间O(k) */ public class _219存在重复元素II { public boolean containsNearbyDuplicate(int[] nums, int

瑞新の博客:bennyrhys 1155

leetcode 219

219. Contains Duplicate II Given an array of integers and an integerk, find out whether there are two distinct indicesiandjin the array such thatnums[i] = nums[j]and theabsolutedifferen...

dianpangzhun7106的博客 133

leetcode 219. 存在重复元素 II 题解

leetcode 219 题解 重要参考文章: c++几乎双百的set解法: 官方解法集锦 收获 本篇题解是针对 leetcode 219题, 进行时间复杂度进行优化的提升。分别应用了以下几点: 用 unordered_set 来进行 k 窗口的构造,可以有效提升时间,能减少 4 ms 运行时间 通过优化 if-else 的条件,优化代码的可读性。 通过更改循环条件, int n = nums.size(); i < n; 替换 i < nums.size() ,能够手动优化时间 4ms 通

u013580493的专栏 277

LeetCode第 219 题:存在重复元素 II(C++)

219. 存在重复元素 II - 力扣(LeetCode) 哈希表: class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { unordered_map<int, int> m; for(int i = 0; i < nums.size(); ++i){ if(m.count(nums[i])){

zj 353

Leetcode—— 219.存在重复元素II

219.存在重复元素II 给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums [i] = nums [j],并且 i 和 j的差的绝对值最大为 k。 示例1: 输入: nums = [1,2,3,1], k = 3 输出: true 示例 2: 输入: nums = [1,0,1,1], k = 1 输出: true 示例 3: 输入: nu...

suxiaorui的博客 573

LeetCode 219.Contains Duplicate II

今天是大年初七,祝大家新年快乐!万事如意!恭喜发财! 同时也是今年第一篇文章:LeetCode 219 题解 说说LeetCode 作为大名鼎鼎的面试刷题网站,最近也出了中文版,如果之前没有了解过的童鞋,建议去网站看看,里面有各大互联网公司的算法面试题,包括谷歌,Fackbook,微软,亚马逊等等,近年来国内的互联网公司也越来越重视算法和数据结构了,特别是后端,经常看到高级工程师 职位以上的jd都...

BlueLzy的个人博客 358

leetcode-219 | 存在重复元素 II

title: leetcode-219 | 存在重复元素 II date: 2019-5-3 15:09:16 comments: true categories: “leetcode” tags: - leetcode 简单难度 - 滑动窗口典型例子 题目描述 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和...

梦否 512

LeetCode 219. 存在重复元素 II(Java)

219. 存在重复元素 II 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。 示例 1: 输入: nums = [1,2,3,1], k = 3 输出: true 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cont...

nuts_and_bolts的博客 192

(力扣)第219. 存在重复元素 II

219. 存在重复元素 II 题目要求: 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。 解题思路: 自己用的双重for循环,超时了。查看了官方给的答案。使用散列表来实现。自己就构建了个数组实现了,但是执行效率太慢了,太费时间了! 题解代码: class Solution: def containsNearbyDuplicate(self, nums: List[int]

搞点學術的研究生 273

力扣解法汇总219-存在重复元素 II

原题链接:力扣 描述: 给你一个整数数组nums 和一个整数k ,判断数组中是否存在两个 不同的索引i和j ,满足 nums[i] == nums[j] 且 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 ...

分享+记录 323
上一篇: LeetCode15
下一篇: LeetCode16
LearnToStick
博客等级 码龄9年 11粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值