存在重复元素算法(leetcode第217题)

题目描述:

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

示例 1:

输入:nums = [1,2,3,1]
输出:true

示例 2:

输入:nums = [1,2,3,4]
输出:false

示例 3:

输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true

提示:

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

算法一:排序法

思路:

将所有元素进行排序,对相邻元素比较是否相同,找出重复元素

代码实现:
# include<stdlib.h>int cmp(const void* _a, const void* _b) {int a = *(int*)_a, b = *(int*)_b;return a - b;
}bool containsDuplicate(int* nums, int numsSize) {//排序qsort(nums, numsSize, sizeof(int), cmp);//相同的数会相邻 所以检查相邻元素是否相同即可for (int i = 0; i < numsSize - 1; i++) {if (nums[i] == nums[i + 1]) {return true;}}return false;
}

算法二:hash表

思路:

创建hash表,利用取余来降低数据大小,具体实现见注释

代码实现:
bool containsDuplicate(int* nums, int numsSize){if(numsSize<2)//边界情况判断return false;int Hasharr[numsSize];int count = 0;int reminder = 0;//初始化for(int i=0;i<numsSize;i++){Hasharr[i] = 0;}for(int i=0;i<numsSize;i++){//单独对0讨论-->防止与可被整除的数混淆if(nums[i] == 0){count++;if(count == 2)return true;continue;}// 4 100 1000 -50 1000reminder = nums[i]%numsSize;if(reminder<0)reminder+=numsSize;while(true){if(Hasharr[reminder]==0){//未存放-->存入新数据-->下一轮Hasharr[reminder] = nums[i];break;}//比对数据else if(Hasharr[reminder] == nums[i]){return true;}//不同-->移位-->重复判断是否一存放else{reminder++;if(reminder>=numsSize)reminder-=numsSize;}}}return false;
}

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

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

相关文章

【动手学深度学习】(十一)卷积层

文章目录 一、从全连接到卷积 一、从全连接到卷积 分类猫和狗的图片 使用一个相机采集图片&#xff08;12M像素&#xff09;RGB图片有36M元素使用100大小的单隐层MLP&#xff0c;模型有3.6B元素 远多于世界上所有猫和狗总数&#xff08;900M狗&#xff0c;600M猫&#xff09;…

Python字符串格式化练习

示例一&#xff1a; 题目&#xff1a; 利用输出语句输出下列语句内容&#xff1a;公司&#xff1a; ikun股票,股票代码&#xff1a;001314 ,当前股价&#xff1a;2.5 &#xff0c;每日增长系数:1.2350 &#xff0c;经过增长7天后&#xff0c;股价达到了&#xff1a;10.95490…

关于ThreadLocal的理解

为什么threadLoacl要设计改为thread类里面有threadLocalMap&#xff1f; 为什么threadLoacl要设计改为thread类里面有threadLocalMap&#xff0c;然后map里面key为threadLoacl&#xff0c;value为value&#xff0c;而不是一个threadLoaclMap里面根据thread当key呢。 其实在早…

3.3 SaltStack 的部署和自动化配置

SaltStack 的部署和自动化配置 SaltStack 简介 介绍 SaltStack&#xff0c;一款功能强大的自动化配置管理工具&#xff0c;它采用分布式的代理-主控架构。强调 SaltStack 的目标&#xff1a;简化配置管理、加速任务执行、提高基础设施的可扩展性。 部署 SaltStack 环境 解释如…

制作一个RISC-V的操作系统五-RISC-V汇编语言编程一

文章目录 RISC-V汇编语言入门汇编语言概念简介 汇编语言语法介绍&#xff08;GNU版本&#xff09; RISC-V汇编语言入门 汇编语言概念简介 高级&#xff1a;可以理解就是更贴近人的理解 低级&#xff1a;可以理解就是更贴近机器的 难移植&#xff1a;汇编指令基本上和机器指令…

Matlab之统计数据分布并绘制直方图函数histogram

一、功能 直方图是一种将数据分组到条柱中的条形图。该函数可以统计数据在划分区间内的数量分布&#xff0c;同时以直方图的形式展示统计结果。 二、语法 1、histogram&#xff08;X&#xff09; 创建直方图X的图。该函数使用 一种自动分箱算法&#xff0c;返回具有统一宽度…

软件科技成果鉴定测试需提供哪些材料?

为了有效评估科技成果的质量&#xff0c;促进科技理论向实际应用转化&#xff0c;所以需要进行科技成果鉴定测试。申请鉴定的科技成果范围是指列入国家和省、自治区、直辖市以及国务院有关部门科技计划内的应用技术成果&#xff0c;以及少数科技计划外的重大应用技术成果。   …

“山东工行杯”山东省第五届数据应用创新创业大赛颁奖仪式丨2023中国新型智慧城市发展创新峰会“数字经济”分论坛同台举行

「场景赋能 数创齐鲁」 山东省第五届数据应用创新创业大赛 精彩颁奖典礼引领科技潮流 11月24日&#xff0c;“山东工行杯”山东省第五届数据应用创新创业大赛颁奖仪式与2023中国新型智慧城市发展创新峰会相结合并在“数字经济”分论坛同台举行。 本次大赛以“场景赋能&#…

VA03 凭证流 查看备忘

今天被问到了&#xff0c;为什么这个销售订单 只显示了3 EA 仔细看了一下&#xff0c;前面10 是行项目 看销售订单 最后发现&#xff0c;凭证流跟选择查看的行项目有关系 以前一直没有关注这个细节

2023字节跳动软件测试工程师面试题及答案分享

相信大家都有这样一个忧虑就是面试&#xff0c;不管我们要找什么工作&#xff0c;面试都会是必不可少的&#xff0c;下面是整理出来的面试题和我的一些见解觉得不对的在评论区留言&#xff01; 1、什么是兼容性测试&#xff1f;兼容性测试侧重哪些方面&#xff1f; 参考答案&…

【S32K3环境搭建】-0.3-S32DS安装实时驱动RTD(Real-Time Driver)

目录 1 什么是“实时驱动RTD(Real-Time Driver)” 2 安装“实时驱动RTD(Real-Time Driver)” 2.1 方法一&#xff1a;通过S32DS Extensions and Updates安装“实时驱动RTD(Real-Time Driver)” 2.2 方法二&#xff1a;通过Install New Software…安装“实时驱动RTD(Real-Ti…

GEE 23:基于GEE实现物种分布模型之随机森林算法(Random Forest)

物种分布模型之随机森林法 1.物种分布数据2.研究区绘制3.预测因子选择4.多重共线性分析5.伪不存在点生成6.验证数据准备(重复分割块样本交叉验证)7.模型拟合、验证和预测8.提取及展示模型预测结果9.精度评估10.结果导出11.常见函数解释1.物种分布数据 根据研究目的和需要导入…

《微信小程序开发从入门到实战》学习四十三

4.3.3 下载文件 在小程序端&#xff0c;使用wx.cloud.downloadFile方法可以将文件从云空间下载至本地。代码如下&#xff1a; // 使用回调风格的API下载文件&#xff0c;会返回一个downloadTask对象 const downloadTask wx.cloud.downloadFile({ fileID: cloud://xxx.png, //…

智能优化算法应用:基于白冠鸡算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于白冠鸡算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于白冠鸡算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白冠鸡算法4.实验参数设定5.算法结果6.参考文献7.…

L0、Linux常用命令

一、防火墙&#xff1a; 在 Linux 中&#xff0c;关闭防火墙可以使用不同的命令&#xff0c;这取决于你所使用的防火墙软件。在一些常见的 Linux 发行版中&#xff0c;防火墙可能是 iptables 或 firewalld两种&#xff1a; centos6使用iptables作为默认防火墙&#xff1b;cento…

【MySQL环境配置在虚拟机中】

MySQL环境配置在虚拟机中 先检查虚拟机中是否有MySQL在线安装1.下载yum Repository2.安装yum Repository3.安装mysql5.7的服务4.开机自启动5.启动mysql6.查看状态7.获取临时密码8.登录mysql9.关闭密码复杂验证10.设置密码11.修改权限12.卸载yum Repository 离线安装1.先找一下机…

学员追访 | “IC的标签并不是只有高薪与965”

大家好&#xff0c;我是08期的学员小D 。 很开心能在这里与大家分享我的学习、工作经历&#xff0c;我毕业于一所双非本科院校。现在已经入职五个月了&#xff0c;很满意目前的薪资水平和工作状态。 接下来我把我的学习经历和求职经验给大家做个分享&#xff0c;希望能够帮到…

【全栈开发】使用NestJS、Angular和Prisma 打造全栈Typescript开发

在开发Angular应用程序时&#xff0c;我非常喜欢Typescript。使用NestJS&#xff0c;您可以以与Angular非常相似的方式编写后端。 我偶然发现了这个库&#xff0c;发现它非常有趣&#xff0c;所以我想设置一个简单的测试项目。一般来说&#xff0c;我主要使用SQL数据库&#x…

十一、shell脚本综合案例

目录 1、猜字游戏 1.1 规则 1.2 代码 2、一键安装jdk 2.1 准备

【JS】toFixed()无法精准保留小数的解决方案

情景复现&#xff1a; 发现用 toFiexd() 四舍五入保留小数有时不是很精确&#xff0c;接下来用 a 8.0345&#xff0c;b8.045&#xff0c;举例如下&#xff1a; var a 8.035; console.log(a.toFixed(2)) // 8.04 var b 8.045; console.log(b.toFixed(2)) // 8.04 不难看出…