稀碎从零算法笔记Day22-LeetCode:存在重复元素 II

题型:哈希表、数组

链接:219. 存在重复元素 II - 力扣(LeetCode)

来源:LeetCode

题目描述

给你一个整数数组 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 = 2
输出:false

提示:

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109
  • 0 <= k <= 105

题目思路

不看提示的话(不考虑数组元素个数)可以直接暴力(双指针 遍历数组),元素一多就炸

考虑时间复杂度的话,可以用哈希表。因为要看重复元素的出现次数,要看两个int元素,那可以用unordered_map来存,key是 nums[i],value是 i 。用 i 来遍历数组,hash[nums[i]] == i 时,说明数组中这个元素出现过,这时候再看一下差,满足条件就可以return 1了,不满足就继续循环,差值不够就更新哈希表对应key的value

C++代码

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {// 哈希表// 遍历数组,如果当前元素和哈希表中的元素相同(说明重复了),看i-hash[nums[i]]unordered_map<int,int> temp_hash;//key nums[i] value iint i=0,len=nums.size();for(;i<len;i++){if(temp_hash.count(nums[i]) && i-temp_hash[nums[i]]<=k)return 1;elsetemp_hash[nums[i]] = i;}return 0;}
};

结算页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端路由history路由和hash路由的区别?原理?

前端路由是指在单页应用程序&#xff08;SPA&#xff09;中通过改变 URL 路径来实现页面切换和导航的机制。在前端开发中&#xff0c;有两种主要的前端路由实现方式&#xff1a;基于 History API 的路由&#xff08;history-based routing&#xff09;和基于哈希&#xff08;Ha…

K8s-网络原理-上篇

引言 本文是学习《深入剖析K8s》网络原理部分的学习笔记&#xff0c;相关图片和案例可以从https://github.com/WeiXiao-Hyy/k8s_example获取&#xff0c;欢迎Star&#xff01; 网络基础 IP组成 IP地址由两部分组成&#xff0c;即网络地址和主机地址。网络地址表示其属于互联…

UE4_官方动画内容示例1.1_使用动画资产

对一个SkeletalMeshActor进行设置&#xff0c;设置好之后&#xff0c;可以通过该Actor的细节&#xff08;Details&#xff09;面板播放指定的动画序列&#xff08;AnimationSequence&#xff09;资产&#xff08;例如让Actor翻跟斗并做开合跳&#xff09;。 骨架网格体定义&am…

Linux第79步_使用自旋锁保护某个全局变量来实现“互斥访问”共享资源

自旋锁使用注意事项:自旋锁保护的“临界区”要尽可能的短。 因此&#xff0c;在open()函数中申请“spinlock_t自旋锁结构变量”&#xff0c;然后在release()函数中释放“spinlock_t自旋锁结构变量”&#xff0c;这种方法就行不通了。如果使用一个变量“dev_stats”来表示“共享…

【开发环境搭建篇】Redis客户端安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)

1.简介 这一篇宏哥主要介绍webdriver在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况&#xff0c;我们知道&#xff0c;有些网站打开是弹窗&#xff0c;SSL证书不可信任&#xff0c;但是你可以点击高级选项&#xff0c;继续打开不安全的链接。举例来说&#xff0c;想必…

MISC:常见编码

一、字符编码 1.ASCII码 使用指定7位或8位二进制数组合表示128-256种可能。 常⻅考点&#xff1a;解题过程中给出十进制或十六进制的连续数值。 进制转换工具&#xff1a; ASCII text,Hex,Binary,Decimal,Base64 converter (rapidtables.com) 2.Base64编码 ASCII编码以8个比特…

【Nginx安装教程】

目录 nginx官网安装教程安装相关路径相关命令(Linux)启动命令停止命令重新载入运行卸载 相关命令(Windows)启动命令停止命令重新载入重新打开日志文件查看Nginx版本&#xff1a; 面试题Nginx代理后如何获取客户端真实IP地址 nginx官网安装教程 安装教程目录 安装 Install th…

迁移学习的技术突破与应用前景

目录 前言1 迁移学习技术1.1 原理与分类1.2 主要挑战 2 迁移学习应用2.1 计算机视觉2.2 医疗健康 3 未来展望3.1 推动各领域发展3.2 提高模型泛化能力和效果3.3 在新兴领域中广泛应用 结语 前言 迁移学习作为机器学习领域的重要技术之一&#xff0c;以其能够将从一个任务中学到…

如何构建Docker自定义镜像

说明&#xff1a;平常我们使用Docker运行各种容器&#xff0c;极大地方便了我们对开发应用的使用&#xff0c;如MySQL、Redis&#xff0c;以及各种中间件&#xff0c;使用时只要拉镜像&#xff0c;运行容器即可。本文介绍如何创建一个Demo&#xff0c;自定义构建一个镜像。 开…

程序员下班以后做什么副业合适?

我就是一个最普通的网络安全工程师&#xff0c;出道快10年了&#xff0c;不出意外地遭遇到瓶颈期&#xff0c;但是凭技术在各大平台挖漏洞副业&#xff0c;硬是妥妥扛过来了。 因为对于程序员来讲&#xff0c;这是个试错成本很低、事半功倍的选择。编程技能是一种强大生产力&a…

Android 系统开发工具大全

写给应用开发的 Android Framework 教程——玩转AOSP篇之 Android 系统开发工具推荐 下面推荐的是我常用的工具&#xff0c;如果你有好用的开发工具欢迎在评论区留言讨论交流。 1. SSH 服务与 Tabby Terminal SSH 服务使得我们在其他平台上通过 SSH 客户端程序即可访问到我们…

计算机二级公共知识点---计算机系统组成,指令系统

计算机系统组成 文章目录 计算机系统组成一、计算机系统组成二级考点 二、指令执行方式二级考点&#xff1a; 指令的地址结构寻址地址 &#xff08;考试重点&#xff09;指令寻址数据寻址&#xff08;重点&#xff09;寻址方式&#xff08;重点&#xff09; 例题&#xff1a; E…

内存泄漏及解决方案

目录 什么是内存泄漏 常见的内存泄漏问题 闭包引起的内存泄漏 意外的全局变量 定时器未清除引起的内存泄露 循环引用引起的内存泄露 DOM泄露 前端常见内存泄露检测工具 什么是内存泄漏 首先&#xff0c;需要了解浏览器自身的内存回收机制。 每个浏览器会有自己的一套回…

KTV点歌系统|基于JSP技术+ Mysql+Java+ B/S结构的KTV点歌系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

python 笔记:locals

1 函数介绍 locals()是Python的一个内置函数&#xff0c;它用于获取当前局部符号表的字典。所谓的局部符号表是指当前作用域中定义的所有变量和它们的值组成的一个字典&#xff08;dictionary&#xff09;。当你在一个函数内部调用locals()时&#xff0c;它会返回包含该函数的…

基于爬虫对山西省人口采集+机器学习的可视化平台

文章目录 数据来源一、研究背景与意义二、研究目标三、研究内容与方法四、预期成果五、代码讲解六、全文总结 数据来源 1.所有原数据均来自&#xff1a;国家统计局-政府的数据网站 2.涉及到的一些预测数据是根据现有数据进行预测而来。 本文从数据来源&#xff0c;研究意义&am…

敏捷开发最佳实践:客户价值实践案例——用户画像的应用

本节所选实践&#xff0c;核心为了帮助大家了解受访者所在团队是如何通过“用户画像”来解决研发资源浪费的问题。 本实践节选自《2021中国企业敏捷实践白皮书》&#xff08;点击可下载&#xff09;&#xff0c;分享者为钟书智&#xff0c;是来自某银行IT部的敏捷教练。 问题…

springboot284基于HTML5的问卷调查系统的设计与实现

问卷调查系统的设计与实现 摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;问卷信息因为其管理内容繁杂&#xff0c;管理数量繁多导…

揭秘计算机奥秘:基础知识大挑战,踏上科技探索之旅

1、计算机是个啥&#xff1f; 想象一下&#xff0c;计算机就像是一个超级能干的大管家&#xff0c;它不仅能记住很多很多东西&#xff08;存储数据&#xff09;&#xff0c;还能按照我们的指令去做各种各样的事情&#xff08;执行计算和操作&#xff09;。这个大管家是由许多部…