力扣经典150题-H指数

43 阅读1分钟

题目描述

image.png

思路梳理

首先,我们先理解题意,借用力扣大佬的一张图
image.png

如果我们把论文数组按照从大到小排列

7ed719c9997e13727b2d55a56f188ee.jpg

我们从num[0]开始,在这个点我们能得出至少有1篇论文的引用此时\geq6\geq1。
num[1],至少有2篇论文的引用次数\geq5\geq2。
num[2],至少有3篇论文引用\geq3\geq3。
num[3],没有4篇论文引用\geq1\geq4 (1<41<4)

代码展示

官方代码给的就非常完美

    import java.util.Arrays;
    import java.util.Comparator;

    class Solution {
        public int hIndex(int[] citations) {
            int n = citations.length;
            Arrays.sort(citations);
            int h = 0,i=n-1;
            while (i >= 0 && citations[i] > h) {
                h++; 
                i--;
            }

            return h;
        }
    }