class Solution {
public int findDuplicate(int[] nums) {
int left=1,right=nums.length-1;
int mid=0;
while(left<right){
int count=0;//这个count一定要放这里面,重置,不能放到while外面
mid=left+(right-left)/2;
for(int i=0;i<nums.length;i++){
if(nums[i]<=mid){
count++;
}
}
if(count>mid){
//说明重复数在1-mid中间
right=mid;
}else{
left=mid+1;
}
}
return right;
}
}
LeetCode No.287 寻找重复数
最新推荐文章于 2024-03-05 22:50:11 发布