給定一位研究者**被引用次數的陣列(被引用次數是非負整數)。編寫乙個方法,計算出研究者的 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 雖然是線性的時間複雜程度,但是它的空間複雜程度比較高,而且用之前需要有乙個硬性的前提。這個前提在後面給出,這裡先來簡單介紹一下計數排序。計數排序是先掃瞄一邊待排序陣列,並用乙個輔助陣列記錄待排序每個元素應該在...