这一题最重要的一句话就是“有 h
篇论文被引用次数大于等于 h
”
在这里,我们看下上面的图,序线的方程就是 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;
};