LeetCode 287. Find the Duplicate Number
来源:互联网 发布:linux系统的基本命令 编辑:程序博客网 时间:2024/04/23 22:37
问题描述:
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.
两种思路:
1、把nums排序,依次检查,如果位置 i 和 i+1 位置的元素相同,就是重复元素;
2、用二分查找,因为是把n个值放在n+1个位置中,所以每次计数有c个大于mid的值,如果c>mid 说明重复值在mid-high之间,返回说明重复值在low-mid之间,重复循环mid=(low+high)/2。
代码:
solution1:
int findDuplicate1(vector<int>& nums) {sort(nums.begin(), nums.end());for (int i = 0; i < nums.size() - 1; i++) {if (nums[i] == nums[i + 1])return nums[i];}}
int findDuplicate2(vector<int>& nums) {int lo = 1, hi = nums.size() - 1;while (lo < hi) {int mid = (hi + lo) / 2;int c = 0;for (int i : nums)if (i <= mid)c += 1;if (c > mid)hi = mid;elselo = mid + 1;}return lo;}
阅读全文
0 0
- [leetcode] 287.Find the Duplicate Number
- [leetcode] 287. Find the Duplicate Number
- <LeetCode OJ> 287. Find the Duplicate Number
- Leetcode 287. Find the Duplicate Number
- Leetcode - 287. Find the Duplicate Number
- [LeetCode]287. Find the Duplicate Number
- LeetCode 287. Find the Duplicate Number
- 【leetcode】287. Find the Duplicate Number
- 【leetcode】287. Find the Duplicate Number
- leetcode 287. Find the Duplicate Number
- LCP287 LeetCode 287. Find the Duplicate Number
- [Leetcode]287. Find the Duplicate Number
- Leetcode题解 287. Find the Duplicate Number
- [LEETCODE] 287. Find the Duplicate Number
- [LeetCode] 287. Find the Duplicate Number
- <leetcode>287. Find the Duplicate Number
- [leetcode]287.Find the Duplicate Number
- LeetCode 287. Find the Duplicate Number
- 排序问题专题总结
- 同时点击手势深度优化处理 setExclusiveTouch
- mybatis批量操作
- FAFU OJ 删除子串
- AsyncHttpClient上传文件到服务器 注意6.0权限
- LeetCode 287. Find the Duplicate Number
- 一个牛逼的页面动画(Spruce )
- Logstash实践: 分布式系统的日志监控
- 快速幂
- jclasslib
- C# 调用 C++ DLL方法
- skyline 剖面分析MeasureTerrainProfile
- Spring MVC 静态文件处理
- 常见数据结构整理总结