leetcode 287. Find the Duplicate Number

class Solution {
    public int findDuplicate(int[] nums) {
        int N = nums.length;
        int l = 1, r = N - 1;
        while (l < r) {
            int mid = l + (r - l) / 2;
            int s = 0;
            for (int i = 0; i < N; ++i) {
                if (nums[i] <= mid) ++s;
            }
            if (s > mid) {
                r = mid;
            }
            else {
                l = mid + 1;
            }
        }
        return l;
    }
}
posted on 2019-04-07 22:48  王 帅  阅读(102)  评论(0编辑  收藏  举报