Find the Duplicate Number
来源:互联网 发布:西昊电脑椅 知乎 编辑:程序博客网 时间:2024/06/16 04:45
题面:
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
题解:原本想快排下,两个循环若有一样的值,便是所求。
class Solution {public: int findDuplicate(vector<int>& nums) { int i; int j; sort(nums.begin(),nums.end()); for(i=0;i<nums.size();i++){ for(j=i+1;j<nums.size();j++){ if(nums[i]==nums[j]) return nums[i]; } } }};惊讶的是也能过?后来看到条件1不能改变数组。就想到2分查找。
int findDuplicate(vector<int>& nums) { int n=nums.size()-1; int low=1; int high=n; int mid; while(low<high){ mid=(low+high)/2; int count=0; for(int num:nums){ if(num<=mid) count++; } if(count>mid) high=mid; else low=mid+1; } return low;}
阅读全文
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
- 【STM32F103攻城笔记】STM32之MDK(Keil)环境搭建(二)
- miniui中如何在子页面中操作父页面中
- spring data jpa
- Android 添加新的Activity
- mysql 逗号分隔的id转为逗号分隔的名称
- Find the Duplicate Number
- iOS AppStore 审核驳回 关于 UIBackgroundModes 定位问题
- Latex Table 合并行/列详解
- spring data JPA 中带查询条件的分页in的用法
- 风口浪尖上的人工智能,为安防带了怎样的变化
- c++ 中“”和NULL的注意事项
- infoGAN阅读
- vue-cli快速构建项目>>>>及引入jquery、jquery插件、this的指向 mounted钩子函数应用
- 重构问题-分布式系统中启用事务在update引发的死锁