[排序]leetcode274:H指数(medium)

题目:
在这里插入图片描述
题解:

  • 前言:是不是读完题目还是一脸懵逼?是的,这道题翻译的有问题,其实应该跟论文量有关,就是说输出的论文数要小于等于引用次数。
  • 排序
  • 思路:先将数组排序,然后数组长度 - 下标(n-i=h)表示有h篇论文至少引用citation[i]次,剩下的n-h篇论文的引用数不多于citation[i]次(因为数组已排序),即[0,i-1]范围内的论文引用数小于等于citation[i]次,[i,n-1]范围内的论文引用数大于等于citation[i]次那么只需要citation[i]>=h即可,也就表示h篇论文至少引用了citation[i]次,我们就找到答案了。

代码如下:

class Solution {
public:
    int hIndex(vector<int>& citations) {
        sort(citations.begin(),citations.end());
        int n=citations.size();
        //设h=n-i表示至多有h篇论文分别引用了至少citation[i]次,其余n-h篇论文的引用数不多于citation[i]次
        for(int i=0;i<n;++i){
            if(n-i<=citations[i])return n-i;
        }
        return 0;
    }
};
发布了484 篇原创文章 · 获赞 149 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_43152052/article/details/103707363