สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มบวกที่แสดงจำนวนการอ้างอิงที่ผู้วิจัยดำเนินการในช่วงเวลาหนึ่ง
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว และฟังก์ชันควรค้นหาดัชนี h ของผู้วิจัยตามข้อมูลอ้างอิงที่แสดงโดยอาร์เรย์
ดัชนี H:
พิจารณานักวิจัยคนหนึ่งที่ทำการอ้างอิงจำนวน N ในอาชีพของเขา จากนั้นผู้วิจัยจะมีดัชนี h ถ้า h ของเอกสาร N ของเขา/เธอ มีการอ้างอิงอย่างน้อย h รายการแต่ละฉบับ และเอกสาร N h ฉบับอื่นๆ มีจำนวนการอ้างอิงไม่เกิน h การอ้างอิงในแต่ละฉบับ
ตัวอย่างเช่น −
หากอาร์เรย์การอ้างอิงเป็น −
const arr = [1, 6, 3, 0, 5];
ข้อมูลนี้แสดงว่าผู้วิจัยมีเอกสารทั้งหมด 5 ฉบับ และแต่ละฉบับได้รับการอ้างอิง 1, 6, 3, 0, 5 รายการตามลำดับ
และเนื่องจากผู้วิจัยมีเอกสาร 3 ฉบับ แต่ละรายการมีการอ้างอิงอย่างน้อย 3 รายการ และอีก 2 รายการที่เหลือมีการอ้างอิงไม่เกิน 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