Fork me on github

二分查找

二分查找专题

LC287 寻找重复数

class Solution {
    public int findDuplicate(int[] nums) {
        //抽屉原理二分
        int left=0,right=nums.length-1;
        while (left<right){
            int mid=left+(right-left)/2;
            int count=0;
            for(int i=0;i<nums.length;i++){
                if(nums[i]<=mid){
                    count++;
                }
            }
            if(count>mid){
                right=mid;
            }else {
                left=mid+1;
            }
        }
        return left;

    }
}

 

posted @ 2022-06-18 16:20  了不起的盖茨比  阅读(19)  评论(0)    收藏  举报
Copyright © 2021 LinCangHai
Powered by .NET 5.0 on Kubernetes