Find the Duplicate Number
来源:互联网 发布:淘宝网商城女装针织衫 编辑:程序博客网 时间:2024/06/05 15:36
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.
解决方法,根据数值的范围和数组的大小,我们可以使用下标来做文章,如果一个位置被访问了两个,那么
将说明该位置的元素是重复的,那么我们怎么知道这件事呢,可以给位置的数值做文章,下面是相关的代码
int findDuplicate(vector<int>& nums) {
if(nums.size() ==0) return -1;
int pos =0;
size_t len = nums.size();
for(int i =0;i < len;++i){
pos = abs(nums[i]);
if(nums[pos] >0)
nums[pos] = -nums[pos];
elsebreak;
}
return pos;
}
0 0
- 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
- Find the Duplicate Number
- GBDT:梯度提升决策树
- Sphinx到Coreseek安装全解
- 算法设计与分析——第二篇,论算法与数据结构的使用方法及技巧
- 深度增强学习Deep Reinforcement Learning (DQN方面)
- HTML+CSS基础 a标签出现重名的a标签,以实现达到当前页面的最底部与达到当前页面的顶端的代码举例
- Find the Duplicate Number
- poj1860 currency exchange(1)
- 今天复习到滚动特性,没想到,这么高大上,<marquee>,其实就是滚动条
- linux shell(leetcode)
- python学习之 beautifulsoup选择器
- Widget的点击事件
- unity-unet-动态spawn player
- LCIS
- Java与模式之建造者模式详解