H指数

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数

根据维基百科上 h 指数的定义h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且 至少h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值,**h 指数** 是其中最大的那个。


这个H指数的定义非常绕。第一次做的时候有思路,代码就是写不出来。

翻译过来就是nums[i]大于等于[i,n-1]的长度,求满足这个条件的长度最大值。

要使长度为n-i最大,则i取最小值。

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int hIndex(vector<int>& nums) {
sort(nums.begin(),nums.end());
int n=nums.size();
for(int i=0;i<n;i++){
if(nums[i]>=n-i)
return n-i;
}
return 0;
}
};