สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มบวกที่แสดงจำนวนการอ้างอิงที่ผู้วิจัยดำเนินการในช่วงเวลาหนึ่ง
เราจำเป็นต้องเขียนฟังก์ชัน 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