274. H 指数
给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 **h 指数。
根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且 至少 有 h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值,h 指数** 是其中最大的那个。
思路
- 对数组进行排序
- 一次循环遍历,判断剩余文章的数量是否大于当前文章数(因为已经排序,第一个符合条件即是结果)
代码:
class Solution {
public:
int hIndex(vector<int>& citations) {
int n = citations.size();
sort(citations.begin(), citations.end());
int front = 0;
int end = n - 1;
int mid;
for(int i = 0; i < n; i++) {
if((n - i) <= citations[i]) return n - i;
}
return 0;
}
};