原题链接:274. H-Index
欢迎优化!
【思路】
如果先排序再查找,时间复杂度在O(nlogn)。题目提示Hash Table,这里采用arrCount数组来记录数量,arrCount[i]表示大于等于被引用次数i的论文数量有多少篇:
public int hIndex(int[] citations) {
int n = citations.length;
int[] arrCount = new int[n + 1];
for (int i = 0; i < n; i++) {
if (citations[i] >= n) arrCount[n]++;
else arrCount[citations[i]]++;
}
for (int i = n; i > 0; i--) {
if (arrCount[i] >= i) return i;
arrCount[i - 1] += arrCount[i];
}
return 0;
}
81 / 81
test cases passed. Runtime: 1 ms Your runtime beats 61.18% of javasubmissions.
欢迎优化!