js
/*
* @lc app=leetcode.cn id=287 lang=javascript
*
* [287] 寻找重复数
*/
// @lc code=start
/**
* @param {number[]} nums
* @return {number}
*/
var findDuplicate = function (nums) {
const n = nums.length;
let l = 1,
r = n - 1,
ans = -1;
while (l <= r) {
let mid = (l + r) >> 1;
let cnt = 0;
for (let i = 0; i < n; ++i) {
cnt += nums[i] <= mid;
}
if (cnt <= mid) {
l = mid + 1;
} else {
r = mid - 1;
ans = mid;
}
}
return ans;
};
findDuplicate([1, 3, 4, 2, 2]);
// @lc code=end