剑指 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年03月28日 06时08分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
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_所谓的面向对象实现的冒泡排序
2019-04-21
java编写roguelike_RogueLike地牢生成算法Unity实现
2019-04-21