[M排序] lc274. H 指数(排序+模拟)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[M排序] lc274. H 指数(排序+模拟)相关的知识,希望对你有一定的参考价值。

1. 题目来源

链接:274. H 指数

2. 题目解析

阅读理解。

从大到小枚举每个数,并 从大到小枚举 h,即从 n 开始枚举 h。每次判断是否有 h 个数是大于等于 h 的即可,等价于判断降序数组中的第 h 个数是否大于等于 h 即可。另一个条件,不需要处理,后面的 N-h 个数自然是小于等于 h 的,因为数组是降序的。找到直接返回即可,找不到返回 0。

代码很精巧,思维上稍有点饶。


时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)
空间复杂度: O ( 1 ) O(1) O(1)


代码很精巧。

class Solution {
public:
    int hIndex(vector<int>& c) {
        sort(c.begin(), c.end(), greater<int>());
        for (int h = c.size(); h; h -- )
            if (c[h - 1] >= h)
                return h;
        return 0;               // [0] 返回 0
    }
};

以上是关于[M排序] lc274. H 指数(排序+模拟)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 274 H指数[排序 计数] HERODING的LeetCode之路

274. H-Index

Leetcode[274]H指数&[904]水果成篮

LC 274. H-Index

274. H 指数

Leetcode 274.H指数