274. H-Index - LeetCode
Question
Solution
题目大意:
论文里的 h 因子判定,题目的意思可能有点晦涩。h 因子是评判学术成就的一种重要方法,h 因子越高越好,h 因子兼顾研究学术人员的学术产出数量与学术产出质量。假设一个研究者的 h 因子为 10,则表明该研究者被引用次数大于等于 10 的文章数量也应大于等于 10。
思路:见代码注释
Java实现:
public int hIndex(int[] citations) {
if (citations.length == 0) return 0;
// 数组大小表示发表的论文数量
// 数组的元素表示每篇论文被引用的次数(间接表明论文的质量)
// 论文根据引用次数排序
Arrays.sort(citations);
int level = 0; // 代表研究者的水平 求max(h),满足被引用的次数>=h的论文数>=h
for (int i=0; i<citations.length; i++) {
level = Math.max(level, Math.min(citations.length - i, citations[i]));
}
return level;
}