法一:
不进行排序,直接依照原数组进行解,先假设h为1,然后找引用超过1篇的论文数量,如果满足,则再假设h为2。这样比较慢,时间复杂度为o(n方)。
int hIndex(vector<int>& citations) {
int sum = citations.size();
int num = 0, flag = 0;
for(int i = 1; i <= sum;i++) {
flag = 0;
for(int j = 0; j < sum; j++) {
if(citations[j] >= i) {
flag++;
}
if(flag >= i){
num = i;
break;
}
}
}
return num;
}
法二:
直接进行排序,然后进行比较就好
int hIndex(vector& citations) {
int sum = citations.size();
sort(citations.begin(), citations.end());
for(int i = 0; i < sum; i++) {
if(citations[i] >= sum - i) {
return sum - i;
}
}
return 0;
}