题意:
计算H-Index,即在数列中至少有x个数大于x。
思路:
先由大到小排序,然后判断a[i]-i是否大于等于0,如果大于等于0,则表明至少有i个数大于i。
代码如下:
int cmp(const void *a,const void *b){
return -(*(int*)a-*(int*)b);
}
int hIndex(int* citations, int citationsSize) {
int i=0;
int ans=0;
if(citationsSize==0){
return 0;
}
qsort(citations,citationsSize,sizeof(int),cmp);
ans=0;
for(i=0;i<citationsSize;++i){
if(citations[i]-i-1>=0){
ans=i+1;
}
}
return ans;
}