二分

你在学什么 / 2023-05-10 / 原文

寻找重复数

  • 寻找重复数
class Solution {
    public int findDuplicate(int[] nums) {
        int len = nums.length;
        int l = 1, r = len - 1;
        while (l < r) {
            int mid = (l + r) / 2;
            int count = 0;
            for (int num : nums) {
                if (num <= mid) {
                    count++;
                }
            }
            if (count > mid) {
                r = mid;
            }else {
                l = mid + 1;
            }
        }
        return l;
    }
}