H-Index

題目來源
計算作者的H指數(shù),有h篇paper的引用不小于h,那么h指數(shù)就是h。
我想著排個序,然后從頭往后遍歷一下就可以了,代碼如下:

class Solution {
public:
    int hIndex(vector<int>& citations) {
        int n = citations.size();
        vector<int> tmp(citations);
        sort(tmp.begin(), tmp.end());
        for (int i=0; i<n; i++)
            if (tmp[i] >= n-i)
                return n-i;
        return 0;
    }
};

看了下討論區(qū),有O(N)的解法。感覺挺巧的,h最大的情況就是paper的篇數(shù),一開始從前往后遍歷一遍,記錄下每種引用的個數(shù),大于len的歸為一類。然后再從后往前遍歷,可以得到大于h的paper數(shù)目,然后就可以進(jìn)行計算。
代碼如下:

class Solution {
public:
    int hIndex(vector<int>& citations) {
        int n = citations.size();
        vector<int> nums(n+1, 0);
        for (int i=0; i<n; i++)
            if (citations[i] > n)
                nums[n]++;
            else
                nums[citations[i]]++;
        int sum = 0;
        for (int i=n; i>=0; i--) {
            sum += nums[i];
            if (sum >= i)
                return i;
        }
        return 0;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容