[leetcode]274. H-Index

来源:互联网 发布:数据新常态 编辑:程序博客网 时间:2024/06/05 00:46

题目链接:https://leetcode.com/problems/h-index/#/description

Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index.

According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have at least h citations each, and the other N − h papers have no more than h citations each."

For example, given citations = [3, 0, 6, 1, 5], which means the researcher has 5 papers in total and each of them had received 3, 0, 6, 1, 5 citations respectively. Since the researcher has 3 papers with at least 3 citations each and the remaining two with no more than 3 citations each, his h-index is 3.

Note: If there are several possible values for h, the maximum one is taken as the h-index.


思路:首先对数组由小到大进行排序,然后由大到小遍历数组,h值为1到n,如果元素满足nums[i]>=h,继续遍历,否则跳出循环,返回h。


class Solution {public:    int hIndex(vector<int>& citations) {        if (citations.empty())            return 0;        //对所给序列排序        sort(citations.begin(), citations.end());        int len = citations.size(),maxH = 0;        for (int i = len - 1; i >= 0; --i)        {            int h = len - i;            if (citations[i] >= h && h > maxH)            {                maxH = h;            }            else{                break;            }        }//for        return maxH;    }};


0 0