用 JavaScript 計算引文中的 h 指數
假設我們有一個正整數陣列,表示一位研究員在一段時間內開展的引文數量。
我們需要編寫一個 JavaScript 函式,該函式接收一個這樣的陣列,函式應根據陣列中表示的引文資料找到該研究員的 h 指數。
H 指數
考慮一位研究員在其職業生涯中進行了 N 次引文。然後,如果研究員 N 篇論文中有 h 篇論文至少有 h 次引文,而另外 N − h 篇論文最多有 h 次引文,那麼研究員的 h 指數為 h。
例如 −
如果引文陣列為 −
const arr = [1, 6, 3, 0, 5];
此資料表示研究員總共有 5 篇論文,分別收到 1、6、3、0、5 次引文。
由於研究員有 3 篇論文至少有 3 次引文,其餘兩篇論文最多有 3 次引文,因此 h 指數為 3。
因此,此陣列的輸出應為 −
const output = 3;
示例
以下是程式碼 −
const arr = [1, 6, 3, 0, 5];
const findHIndex = (arr = []) => {
let possible = [];
let { length: len } = arr;
if (len === 0){
return 0;
};
possible.length = len + 2;
possible = possible.join('-').split('').map(() => 0);
for (let i = 0; i < len; i ++) {
let val = arr[i];
let ind = val > len ? len : val;
possible[ind] += 1;
}
let result = 0;
for (let k = len; k >= 0; k --) {
result += possible[k];
if (result >= k) {
return k;
}
}
};
console.log(findHIndex(arr));輸出
以下是控制檯輸出 −
3
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP