0%

leetCode-274:H-Index

问题描述

给定一个整数数组,代表一个作为每篇文章的引用次数,要求找出这个作者的H指数(该作者 n 篇文章中总共有 h 篇文章被引用了至少 h 次,剩下的 n - h 篇文章的引用次数不多于 h,如果 h 值有多个,取最大的那个)。题目链接:**点我**

样例输入输出

输入:[3,0,6,1,5]

输出:3

输入:[1,3,1]

输出:1

问题解法

使用排序,将文章引用次数从小到大排序,然后遍历数组,找到元素值大于等于剩下数组个数的地方,此时剩余数组的长度就是求解的答案。代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public int hIndex(int[] citations) {
Arrays.sort(citations);

for (int i = 0; i < citations.length; i++) {
if (citations[i] >= citations.length - i) {
return citations.length - i;
}
}

return citations[citations.length - 1];
}
}