Find the Duplicate Number问题及解法
来源:互联网 发布:js push json 编辑:程序博客网 时间:2024/05/29 16:05
问题描述:
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.
Note:
- 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(n2)
. - There is only one duplicate number in the array, but it could be repeated more than once.
问题分析:
本题看似附加要求很多,实质上跟142. Linked List Cycle II 的解法类似,利用双指针,找到fast和slow相遇的值,再去找到circle的入口即可。
过程详见代码:
class Solution {public: int findDuplicate(vector<int>& nums) { int slow = nums[0],fast = nums[nums[0]];while (slow != fast){slow = nums[slow];fast = nums[nums[fast]];}fast = 0;while (slow != fast){slow = nums[slow];fast = nums[fast];}return slow; }};
阅读全文
0 0
- Find the Duplicate Number问题及解法
- Find Duplicate Subtrees问题及解法
- Find the Duplicate Number--重复数字问题
- leetcode之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
- CURL实现get和post联网
- 编译mysock.lib库文件的时候遇到的编译问题
- (一)jQuery基础
- tf.Print()
- 分布式进程--错误解决
- Find the Duplicate Number问题及解法
- 项目开发性能优化注意事项
- Java基础知识
- 查找字段在数据库中的那个表 mysql
- HashMap的实现
- AngualrJs 最新 文件图片上传教程5:Client-css Client-config
- LeetCode问题解答:19. Remove Nth Node From End of List
- Unity资源加载以及释放
- 强制横屏或竖屏