今天的题目是274. H-Index。
这道题要求出最大的一个h
满足总共有h
篇文章引用了至少h
次。给定的输入时每一篇文章引用数。
这种问题,一般来说都是先排个序来做加速的。如果现在citations
数组是有序的,我们可以从后往前搜索,找到最大的j
使得倒数第j
个元素的引用数(citations[j]
)大于等于j
。因此,代码如下:
1int hIndex(vector<int>& citations) {2 sort(citations.begin(), citations.end());3 int i, j;4 for(i = citations.size() - 1, j = 1;i >= 0 && citations[i] >= j;i--,j++);5 return j - 1;6}