题目
给你一个整数数组 citations
,其中 citations[i]
表示研究者的第 i
篇论文被引用的次数。计算并返回该研究者的 h
指数**。
根据维基百科上 h 指数的定义:h
代表“高引用次数” ,一名科研人员的 h
指数 是指他(她)至少发表了 h
篇论文,并且 至少 有 h
篇论文被引用次数大于等于 h
。如果 h
有多种可能的值,h
指数** 是其中最大的那个。
示例 1:
输入:citations = [3,0,6,1,5]输出:3
解释:给定数组表示研究者总共有5 篇论文,每篇论文相应的被引用了3, 0, 6, 1, 5 次。
由于研究者有3篇论文每篇至少被引用了3 次,其余两篇论文每篇被引用不多于3 次,所以她的h指数是3。
示例 2:
输入:citations = [1,3,1]
输出:1
提示:
n == citations.length
1 <= n <= 5000
0 <= citations[i] <= 1000
解
func hIndex(citations []int) int {
n:=len(citations)
total := 0
counter:= make([]int,n+1)
for _,v := range citations {
if v > n {
counter[n]++
}else{
counter[v]++
}
}
for i := n ; i >= 0 ; i--{
total += counter[i]
if total >= i {
return i
}
}
return 0
}