Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index.
According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have at least h citations each, and the other N − h papers have no more than h citations each."
For example, given citations = [3, 0, 6, 1, 5]
, which means the researcher has 5
papers in total and each of them had received 3, 0, 6, 1, 5
citations respectively. Since the researcher has 3
papers with at least 3
citations each and the remaining two with no more than 3
citations each, his h-index is 3
.
Note: If there are several possible values for h
, the maximum one is taken as the h-index.
题目含义:求出文章索引的H-index值。对于h-index,意思是某个学者有n篇文章,找出最大的h,使得该作者有h篇文章,并且这h篇文章的引用次数都大于等于h。
思路:降序排列给定数组,从头开始找引用值itations[i]小于等于文章数i的值
相关题目:
275. H-Index II
1 public int hIndex(int[] citations) {
2 Arrays.sort(citations);
3 int left=0,right=citations.length-1;
4 while (left<right)
5 {
6 int temp = citations[left];
7 citations[left] = citations[right];
8 citations[right] = temp;
9 left++;right--;
10 }
11 for (int i = 0; i < citations.length; ++i) {
12 if (i >= citations[i]) return i;
13 }
14 return citations.length;
15 }