给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。
根据维基百科上 :h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且 至少 有 h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值,h 指数 是其中最大的那个。
示例 1:
输入:citations = [3,0,6,1,5]
输出:3
示例 2:
输入:citations = [1,3,1]
输出:1
题不难,有点难想逻辑
class Solution {
public:
int hIndex(vector<int>& citations) {
sort(citations.begin(), citations.end());
//至少发表条件
int h = 0, i = citations.size() - 1;
while (i >= 0 && citations[i] > h) { //从末尾往后循环 //被引用次数 大于 指数
//不大于的时候 数组取了可能的最大数量
h++;
i--;
}
return h;
}
};