計數排序 274 H 指數

2021-10-06 20:30:55 字數 1109 閱讀 3805

給定一位研究者**被引用次數的陣列(被引用次數是非負整數)。編寫乙個方法,計算出研究者的 h 指數。

h 指數的定義:h 代表「高引用次數」(high citations),一名科研人員的 h 指數是指他(她)的 (n 篇**中)總共有 h 篇**分別被引用了至少 h 次。(其餘的 n - h 篇**每篇被引用次數 不超過 h 次。)

例如:某人的 h 指數是 20,這表示他已發表的**中,每篇被引用了至少 20 次的**總共有 20 篇。

示例:

輸入:citations =[3

,0,6

,1,5

]輸出:3

解釋:給定陣列表示研究者總共有 5 篇**,每篇**相應的被引用了 3,0

,6,1

,5 次。

由於研究者有 3 篇**每篇 至少 被引用了 3 次,其餘兩篇**每篇被引用 不多於 3 次,所以她的 h 指數是 3。

解題

先排序,再計數,每次取max(當前h,min(**數量,引用數))

class

solution

};

不用全部遍歷完,從後往前,當當前**數大於等於下乙個引用數時,返回當前**數;

class

solution

};

計數排序

*****計數,*****[i]為被引用次數為i次的**的數量;

從後往前遍歷*****,s記錄當前已遍歷的**數量;

若s=h,則**數量大於等於下乙個引用書,輸出當前**數量即可;

class

solution

private

:

vector<

int> *****;

};

注意點

因為引用數是從n到0乙個乙個遍歷的;

而**數是不斷疊加的;

可能出現引用數為1,**數為2的情況,此時返回**數即是錯誤答案;

所以所有情況下退出迴圈時,引用數都會小於等於**數;

故需要返回h!

LeetCode 274 H指數(排序,雜湊)

給定一位研究者 被引用次數的陣列 被引用次數是非負整數 編寫乙個方法,計算出研究者的 h 指數。h 指數的定義 h 代表 高引用次數 high citations 一名科研人員的 h 指數是指他 她 的 n 篇 中 至多有 h 篇 分別被引用了至少h 次。其餘的 n h 篇 每篇被引用次數不多於 h...

python計數排序 Python 計數排序

1.python coding utf 8 def counting sort a,b,k 計數排序,偽碼如下 counting sort a,b,k 1 for i 0 to k 初始化儲存區的值 2 do c i 0 3 for j 1 to length a 為各值計數 4 do c a j ...

排序 計數排序

資料結構和演算法系列目錄 不斷更新 計數排序是一種線性時間的排序,它的時間複雜程度為o n 雖然是線性的時間複雜程度,但是它的空間複雜程度比較高,而且用之前需要有乙個硬性的前提。這個前提在後面給出,這裡先來簡單介紹一下計數排序。計數排序是先掃瞄一邊待排序陣列,並用乙個輔助陣列記錄待排序每個元素應該在...