跳到主要内容

1608.特殊数组的特征值

链接:1608.特殊数组的特征值
难度:Easy
标签:数组、二分查找、排序
简介:如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。

题解 1 - cpp

  • 编辑时间:2022-09-12
  • 内存消耗:8.1MB
  • 编程语言:cpp
  • 解法介绍:排序后遍历。
class Solution {
public:
int specialArray(vector<int>& nums) {
sort(nums.begin(), nums.end());
int n = nums.size(), cnt = n;
for (int i = 0; i < n; i++, cnt--) {
if (nums[i] >= cnt && (i > 0 && cnt > nums[i - 1] || i == 0)) return cnt;
}
return -1;
}
};