博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
287. Find the Duplicate Number(数组)
阅读量:4180 次
发布时间:2019-05-26

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

题目:求出数组中出现多次的数字,数组大小为n+1,数组元素都是1-n之间的整数且只有一个数字重复出现。

思路:交换的方法。

比如 [2,1,1]

当前下标     对应元素     操作               数组0           2           交换2和1            [1,2,1]1           2           不需要操作          [1,2,1]2           1           1和1相同,找到元素   [1,2,1]

通过交换的方式,将所有元素交换到正确的位置,即nums[x] 对应的数组下标为nums[x]-1。当某一次交换时,交换的两个元素相等,即找到重复数字,比如上面第三次操作时,1和1相等。

代码

class Solution {public:    int findDuplicate(vector
& nums) { for(int x=0;x

转载地址:http://cnrai.baihongyu.com/

你可能感兴趣的文章
android studio SDK开发
查看>>
studio 统计代码的行数
查看>>
字符数组和16进制互换
查看>>
PHP项目中出现致命错误: Class 'Redis' not found
查看>>
There is no tracking information for the current branch.
查看>>
fatal: refusing to merge unrelated histories
查看>>
Git命令还原未提交的变更
查看>>
Linux系统中环境变量的配置
查看>>
Linux系统中配置脚本程序开机启动
查看>>
让Linux系统上的nginx支持php程序
查看>>
源码编译安装LNMP环境之Nginx篇
查看>>
源码编译安装LNMP环境之PHP篇
查看>>
Linux中rpm工具使用教程
查看>>
Linux中yum工具使用教程
查看>>
C++字符串函数
查看>>
mknod详解
查看>>
linux中的run-level何解?
查看>>
Linux内核编译详解(转自linuxSir)
查看>>
实模式,保护模式与V86模式
查看>>
628. Maximum Product of Three Numbers(排序)
查看>>