剑指 Offer 03. 数组中重复的数字
发布日期:2021-06-20 02:50:19 浏览次数:4 分类:技术文章

本文共 719 字,大约阅读时间需要 2 分钟。

题目

找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例一

输入:

[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3

思路

  • 因为这道题目数据范围是0~n-1,那么我们利用原数组进行存储。对于下标为i的数字来说,其应该对应的数组num[i]应该等于i。
  • 因此,当不满足上面的条件,我们把nums[nums[i]]和nums[i]进行比较,如果两者相同,证明出现了 重复的元素。因为原有的位置出现了应该出现的元素。

代码

class Solution {
public: int findRepeatNumber(vector
& nums) {
for(int i = 0;i < nums.size();i++){
if(nums[i] != i){
if(nums[nums[i]] == nums[i]) return nums[i]; nums[i] = nums[i] ^ nums[nums[i]]; nums[nums[i]] = nums[i] ^ nums[nums[i]]; nums[i] = nums[i] ^ nums[nums[i]]; } } return 0; }};

转载地址:https://blog.csdn.net/free1993/article/details/115075827 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:剑指 Offer 10- I. 斐波那契数列
下一篇:剑指 Offer 24. 反转链表

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月28日 06时08分14秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

洞泾智能机器人产业基地_G60科创走廊洞泾人工智能产业基地(核心区块)暨洞泾镇招商人员培训班顺利开班... 2019-04-21
java 拼接路径优雅方式_Java安全编码实践总结 2019-04-21
realme x2 深度测试打不开_搭载65W超级闪充,realme真我X7手机充电评测 2019-04-21
整数取反编程_【每日编程185期】数字的补数 2019-04-21
能用别的软件吗_手机软件能用蓝牙传送吗 2019-04-21
为什么图片要2的倍数_为什么宝宝喜欢流“口水”?这种2种原因父母要知道,建议收藏... 2019-04-21
下载了XAMPP怎样打开MYSQL_xampp mysql安装启动 2019-04-21
pdo转mysql_mysql转mysqli或pdo 2019-04-21
mysql如果没有表就创建_mysql – 改变表是否存在或创建如果没有 2019-04-21
ireport连接mysql_ireport 4.5教程之数据源介绍 2019-04-21
mysql多维模型_数据仓库数据库设计方法---关系模型和多维模型比较分析 2019-04-21
局域网聊天程序 java MySQL_java 基于TCP/IP协议的局域网聊天小程序 2019-04-21
r glm 中的p值_假设检验中的P值 2019-04-21
mysql中sql语句结构_MySQL中使用sql语句获得表结构 2019-04-21
如何增加mysql主键约束_mysql修改表时怎么添加主键约束? 2019-04-21
java选择路径窗口_Java实现选择电脑路径的方法 2019-04-21
java 图像渐变_Java基础之在窗口中绘图——渐变填充(GradientApplet 1) 2019-04-21
冒泡排序面向对象java_所谓的面向对象实现的冒泡排序 2019-04-21
proto 客户端 JAVA_Kubernetes官方java客户端之五:proto基本操作 2019-04-21
java编写roguelike_RogueLike地牢生成算法Unity实现 2019-04-21