Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

กำลังคำนวณดัชนี h ของการอ้างอิงใน JavaScript


สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มบวกที่แสดงจำนวนการอ้างอิงที่ผู้วิจัยดำเนินการในช่วงเวลาหนึ่ง

เราจำเป็นต้องเขียนฟังก์ชัน 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