LeetCode 274. H指数

912 ワード

ある研究者の論文が引用された回数の配列(引用された回数は非負の整数)を与えた.研究者のh指数を計算する方法を記述した.
h指数の定義:hは「高引用回数」(high citations)を表し、ある科学研究者のh指数は彼(彼女)の(N編論文の中で)合計h編論文が少なくともh回引用されたことを指す.△残りのN−h論文の1編当たりの引用回数はh回を超えない.
例えば、ある人のh指数は20で、これは彼が発表した論文の中で、少なくとも20回引用された論文が全部で20編あることを示しています.
  :

  :citations = [3,0,6,1,5]
  :3 
  :             5    ,            3, 0, 6, 1, 5  。
            3               3  ,                3  ,     h     3。
  :     h,   h      h      h,       。
class Solution {
public:
    //      h      h,            h
    int hIndex(vector& citations) {
        sort(citations.begin(), citations.end(), greater());  //       
        int n = citations.size();
        for (int i = citations.size(); i > 0; --i){
            if (citations[i - 1] >= i)
                return i;
        }
        return 0;
    }
};