题目

力扣地址

给你一个整数数组 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 
}
Last modification:August 21, 2024
如果觉得我的文章对你有用,请收藏本站