【Leetcode】274. H 指数

18 阅读1分钟

leetcode-274.png

这一题最重要的一句话就是“有 h 篇论文被引用次数大于等于 h

image.png

在这里,我们看下上面的图,序线的方程就是 y = x , 要找到 h 篇论文被引用次数大于等于 h,那么就是虚线还有实线相交的地方,此时这个焦点的横坐标就是我们的结果。

var hIndex = function (citations) {
    let res = 0;
    citations.sort((a, b) => b - a);
    for (let i = 0; i < citations.length; ++i) {
        if (citations[i] >= i + 1) {
            res++;
        } else {
            break;
        }
    }
    return res;
};

上面的代码有点繁琐,可以不用res这个变量,直接用i即可

var hIndex = function (citations) {
    citations.sort((a, b) => b - a);
    let i = 0;
    while (i < citations.length) {
        if (citations[i] <= i) break;
        ++i;
    }
    return i;
};