**题目:**给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且 至少 有 h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值,h 指数 是其中最大的那个。
题目链接: 274. H 指数
解题思路及代码:
注意从大到小的排序的写法!!
int 从大到小排序使用sort函数 需要转为Integer
或者先sort后翻转
class Solution {
public int hIndex(int[] citations) {
Integer[] citationsInteger = Arrays.stream(citations).boxed().toArray(Integer[]::new);
Arrays.sort(citationsInteger,new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return b - a; // 降序排序
}
});
int result=0;
for(int i=0;i<citationsInteger.length;i++){
if(citationsInteger[i]>result){
result++;
}
}
return result;
}
}