原谅是人际关系的润滑油。

题目描述:

H 指数

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

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

解题代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int hIndex(vector<int>& citations) {
sort(citations.begin(), citations.end());
int len = citations.size();

for(int i = 0; i < len; i++){
if(citations[i] >= len - i){
return len - i;
}else{
continue;
}
}
return 0;
}
};

image-20231008213659929

总结收获:

题目看起来比较唬人,但实际就是下标和数组值之间的关系,当我们把数组升序排序后,此时数组中是论文引用次数递增,再从头遍历数组,当数组中的最小值大于数组剩余元素个数,这个值就是题目要求的h指数。