lintcode(633)Find the Duplicate Number
来源:互联网 发布:java的thread.sleep 编辑:程序博客网 时间:2024/06/03 16:57
描述:
Given an array nums
containing n + 1
integers where each integer is between 1
and n
(inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate number, find the duplicate one.
注意事项
- You must not modify the array (assume the array is read only).
- You must use only constant, O(1) extra space.
- Your runtime complexity should be less than O(n^2).
- There is only one duplicate number in the array, but it could be repeated more than once.
样例:
Given nums
= [5,5,4,3,2,1]
return 5
Given nums
= [5,4,4,3,2,1]
return 4
思路:
建立i到f(A[i])的映射,会找到i!=j,而f(i)=f(j),进行环检测,查找包含重复值的循环,循环的入口即为重复值
详细证明参考:http://bookshadow.com/weblog/2015/09/28/leetcode-find-duplicate-number/
解题思路参考了此链接的博客内容
public class Solution { /** * @param nums an array containing n + 1 integers which is between 1 and n * @return the duplicate one */ public int findDuplicate(int[] nums) { // Write your code int slow = 0; int fast = 0; while(true){ slow = nums[slow]; fast = nums[nums[fast]]; if(slow == fast){ break; } } int result = 0; while(true){ slow = nums[slow]; result = nums[result]; if(slow == result){ return result; } } }}
阅读全文
0 0
- lintcode(633)Find the Duplicate Number
- LintCode Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find The Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Find the Duplicate Number
- Linux环境下编写C语言
- spring集成redis缓存的注解实现
- I2S音频总线(三)————S3C2440的I2S控制器
- 从菜鸟到架构师(二十四)
- LintCode 75 寻找峰值
- lintcode(633)Find the Duplicate Number
- Maven pom中配置多个远程仓库
- jdbc连接mysql数据库和一套增删改查
- Spark Streaming 实战(1)搭建kafka+zookeeper+spark streaming 的windows本地开发环境
- 刷清橙OJ--A1018.查找整数
- Tomcat 应用目录重定向
- React Native 仿 ofo 共享单车 App
- iOS 通过文字动态计算文本宽高
- Python函数式编程之高阶函数filter()(求素数,回数)