LeetCode 1608. 特殊数组的特征值
原题链接
简单
作者:
RiseAbove1
,
2022-12-13 11:10:04
,
所有人可见
,
阅读 136
class Solution {
public:
//如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。
int specialArray(vector<int>& nums) {
sort(nums.begin(),nums.end());
int n = nums.size();
for (int x = 0; x < 1010; x++) {
int l = 0 , r = n-1;
while(l<r){
int mid = l + r >> 1;
if (nums[mid] >= x) r = mid;//从右往左逼近
else l = mid + 1;
}
if (nums[r] >= x && x == n - r) return x;
}
return -1;
}
};
//0,4,3,0,4
//0,0,3,4,4
// r n
// 2 5