今天的题目是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}