给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。
根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且 至少 有 h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值,h 指数 是其中最大的那个。
排序法
排序:将引用次数数组 citations 按 从大到小(降序)排列。 遍历与比较:遍历排序后的数组,下标为 的论文是第 篇高引用论文。如果当前论文的引用次数 ,说明我们至少有 篇论文引用次数大于等于 。我们继续向后看,直到不满足这个条件为止。结论:最大的符合条件的 就是 h 指数。
/**
* @param {number[]} citations
* @return {number}
*/
var hIndex = function(citations) {
const sorted = citations.sort((a,b)=>b-a)
let i = 0
while(sorted[i]>=i+1){
i++
}
return i
};