您的位置:首页 > 其它

LeetCode H-Index

2015-10-06 14:42 344 查看
Description:

iven 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.
Solution:

We can imagine this problem as trying to use a y=-x+h to fit in the 2-D coordinates, where the coordinates are x and y sorting in ans descending order.

<span style="font-size:18px;">import java.util.*;

public class Solution {

public int hIndex(int[] citations) {
int n = citations.length;
Integer arr[] = new Integer
;
for (int i = 0; i < n; i++)
arr[i] = citations[i];

tempCmp cmp = new tempCmp();
Arrays.sort(arr, cmp);

int ans = 0;
for (int i = 0; i < n; i++) {
if (arr[i] >= i + 1) {
ans = i + 1;
}
}

return ans;
}

class tempCmp implements Comparator<Integer> {
public int compare(Integer arg0, Integer arg1) {
return arg1 - arg0;
}

}
}
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: