274. H指数

发布时间:2023年12月27日

给你一个整数数组?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

方法2:

    public int hIndex(int[] cs) {
        int n = cs.length;
        int l = 0, r = n;
        while (l < r) {
            int mid = l + r + 1 >> 1;
            if (check(cs, mid)) l = mid;
            else r = mid - 1;
        }
        return r;
    }
    boolean check(int[] cs, int mid) {
        int ans = 0;
        for (int i : cs) if (i >= mid) ans++;
        return ans >= mid;
    }

作者:宫水三叶
链接:https://leetcode.cn/problems/h-index/

方法3:

    public int hIndex(int[] citations) {
        Arrays.sort(citations);
        int hIndex = 0;
        int n = citations.length-1;

        for (int i = n; i >= 0; i--) {
            if(citations[i] > hIndex ) {
                hIndex++;
            }
        }
        return citations[n] == 0?0:hIndex;
    }

文章来源:https://blog.csdn.net/linping_wong/article/details/135253054
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。