【力扣精选算法100道】——存在重复元素 1 or 2 (哈希)

目录

🚩存在重复元素1

 🎈了解题意

🎈算法原理

🎈实现代码

🚩存在重复元素2

🎈了解题意

🎈算法原理

🎈代码实现




217. 存在重复元素 - 力扣(LeetCode)

🚩存在重复元素1


 🎈了解题意

数组中存在重复元素的值那么就返回true,否则返回false即可。

🎈算法原理

本题不用键值对,记录下标以及下标的值,我们只需要看是否存不存在这个hash值即可

所以我们用Set容器,我们遍历数组,如果存在,那么就返回true,如果不存在,那么就将这个元素插入到hash中去。遍历完数组之后,直接返回false即可。

🎈实现代码

class Solution {
public:bool containsDuplicate(vector<int>& nums) {unordered_set<int> hash;for(auto x:nums){if(hash.count(x))return true;//如果存在就直接返回trueelse hash.insert(x);//如果不存在,那么就插入该值}return false;}
};

🚩存在重复元素2

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

🎈了解题意

这一题和上一题的其实就增加了多了一个条件,就是找到重复的数字之后,我们还要判断一下,这俩个相同的数字的下标之差是不是小于等于k,如果小于等于k,那么就返回true,如果大于k,那么返回false。

🎈算法原理

这一题不仅要存入hash表中存入当前i下标的值,还要存入下标,所以这题需要用到map键值对,第一个代表对应的值,第二个代表下标。

  • 1.依次遍历
  • 2.如果当前的值不存在,那么就将下标赋值给当前下标对应的值,如果存在 ,继续判断一下是否俩者的下标之差小于等于k。

🎈代码实现

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

野心。

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

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

相关文章

【机器学习】包裹式特征选择之递归特征添加法

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

基于springboot+vue的多媒体素材库的开发与应用系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Hack The Box-Perfection

总体思路 端口扫描->SSTI RCE->db文件泄露->hashcat破解密码 信息收集&端口利用 nmap -sV -sC -A 10.10.11.253目标只开放了22和80端口&#xff0c;先进行目录扫描和子域名探测 dirsearch -u 10.10.11.253 ffuf -c -u http://pefection.htb/ -H "Host: F…

Golang 程序启动原理详解

一.编译 go源代码首先要通过 go build 编译为可执行文件,然后去机器上直接执行的&#xff0c;在 linux 平台上为 ELF 格式的可执行文件&#xff0c;linux 能直接执行这个文件,而编译阶段会经过编译器、汇编器、链接器三个过程最终生成可执行文件 编译器&#xff1a;*.go 源码通…

网络基础(二)

目录 再谈"协议" 序列化 JSON 网络版计算器 HTTP协议 认识URL urlencode和urldecode HTTP协议格式 telnet指令 stat函数 struct stat类型 stringstream类型 wget指令 HTTP的方法 HTTP的状态码 传输层 再谈端口号 端口号范围划分 认识知名端口号(W…

[SpringCloud] OpenFeign核心架构原理 (二)

文章目录 1.Feign核心运行原理分析1.1 动态代理生成原理1.2 一次Feign的Http调用执行过程 1.Feign核心运行原理分析 动态代理生成原理。一次Feign的Http调用执行过程。 1.1 动态代理生成原理 通过Feign.builder().target(xx)获取到动态代理的。 调用ReflectiveFeign的newInst…

Python数据分析案例38——我国个人工作总收入影响因素分析

案例背景 偶然之间找到了CSFP(中国家庭追踪调查)的数据集&#xff0c;一个很全的家庭调查数据集。所以就想对大家现在最关心的工资和其影响因素做一点分析。 得到的结论还挺有价值的&#xff0c;有符合逻辑的&#xff0c;也有反直觉的。 数据来源 CFPS由北京大学中国社会科学…

【XR806开发板试用】Console流程解析以及添加自定义指令

写在前面的话 基于串口的指令调试总是作为基础功能出现在各个项目中。而这一小小的功能却已经包括了中断注册&#xff0c;回调函数&#xff0c;互斥量等嵌入式系统基本的软件逻辑。本文将从以下两个方面介绍XR806 SDK中Console系统。 Console初始化流程添加自定义指令 Conso…

文献阅读--Pulse-Width Modulation

《Dynamics and Control of Switched Electronic Systems》Jian Sun – Chapter 2 《Pulse-Width Modulation》 说明&#xff1a; 文献中的PWM是作为电控系统中基本控制信号去介绍的&#xff0c;但文中对PWM信号的数学证明是同样适用于通信领域的脉宽调制PDM的&#xff0c;文献…

LLM春招准备(1)

llm排序 GPT4V GPT-4V可以很好地理解直接绘制在图像上的视觉指示。它可以直接识别叠加在图像上的不同类型的视觉标记作为指针&#xff0c;例如圆形、方框和手绘&#xff08;见下图&#xff09;。虽然GPT-4V能够直接理解坐标&#xff0c;但相比于仅文本坐标&#xff0c;GPT-4V在…

js形参传递特殊字符

在前端我们给其他页面传值或者传数据到后台的时候&#xff0c;字符串经常将一些特殊符号识别成字符集。这种情况下会将数据打断或者打乱&#xff0c;比如字符串里面包含*/&这些符号的时候就会错误。 我们可以通过将字符中的特殊字符替换成十六进制的字符&#xff0c;一些特…

cannot import name ‘Flask‘ from partially initialized module ‘flask‘

bug&#xff1a; ImportError: cannot import name Flask from partially initialized module flask (most likely due to a circular import) (G:\pythonProject6\flask.py) 这个是因为包的名字和文件的名字一样 修改文件名&#xff1a; 结果 &#x1f923;&#x1f923;&…