leetcode 287:Find the Duplicate Number 二分法查找 java版
来源:互联网 发布:手机淘宝5.8.0旧版本 编辑:程序博客网 时间:2024/06/16 00:55
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.
题目分析:找到重复数,复杂度小于o(n2),很容易想到用二分法查找。
具体代码如下:
public int findDuplicate(int[] nums) { int len=nums.length; int low=1; int high=len-1; //在low=high终止 while(low<high) { int mid=(low+high)/2; /**相当于找到low和mid之间的数,包括mid*/ int n=count(low,mid,len,nums); /**如果有重复的,则相关的值大于等于mid-low+1,因为值中包括mid在内*/ if(n>(high-low)/2+1) { high=mid; } else { low=mid+1; } } return low; } public int count(int a,int b,int len,int[] nums) { int sum=0; for(int i=0;i<len;i++) { if(nums[i]<=b&&nums[i]>=a) sum++; } return sum; }
0 0
- leetcode 287:Find the Duplicate Number 二分法查找 java版
- [leetcode-287]Find the Duplicate Number(java)
- LeetCode 287 -Find the Duplicate Number ( JAVA )
- [leetcode 287]Find the Duplicate Number
- leetcode 287: Find the Duplicate Number
- [LeetCode 287] Find the Duplicate Number
- Find the Duplicate Number leetcode 287
- leetcode 287 Find the Duplicate Number
- leetcode 287 Find the Duplicate Number
- LeetCode(287)Find the Duplicate Number
- Find the Duplicate Number(Leetcode 287)
- LeetCode 287 Find the Duplicate Number (二分)
- leetcode 【287 Find the Duplicate Number】【Python】
- Leetcode (287) Find the Duplicate Number
- LeetCode 287 Find The Duplicate Number
- LeetCode No.287 Find the Duplicate Number
- LeetCode 287---Find the Duplicate Number
- Leetcode 287 Find the Duplicate Number
- 【HDOJ 3584】 Cube(树状数组<区间更新,单点查询>)
- PLSQL与SQL配合使用(DDL)
- 基础总结篇之八:创建及调用自己的ContentProvider
- 事务的隔离级别
- 表单工作流申请的数据统计
- leetcode 287:Find the Duplicate Number 二分法查找 java版
- java接口与内部类应用
- javascript笔记之 基本包装类型(Boolean、Number、String)
- GL 编辑器
- 第9周项目2-对称矩阵压缩存储的实现与应用(1)
- 静态变量static的内存图
- 基础总结篇之七:ContentProvider之读写短消息
- 逆序的三位数
- 韩顺平Linux笔记(三)——常用命令