ধরুন আমাদের কাছে ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে রয়েছে যা নির্দিষ্ট সময়ের মধ্যে বিশেষ গবেষক দ্বারা পরিচালিত উদ্ধৃতির সংখ্যাকে প্রতিনিধিত্ব করে৷
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এইরকম একটি অ্যারে নেয় এবং ফাংশনটি অ্যারের দ্বারা উপস্থাপিত উদ্ধৃতি ডেটার উপর ভিত্তি করে সেই গবেষকের এইচ-ইনডেক্স খুঁজে পাওয়া উচিত৷
H-সূচক:
একজন গবেষকের কথা বিবেচনা করুন যিনি তার কর্মজীবনে N সংখ্যক উদ্ধৃতি দিয়েছেন। তারপরে গবেষকের সূচী h থাকে যদি তার/তার N পেপারগুলির প্রতিটিতে কমপক্ষে h উদ্ধৃতি থাকে এবং অন্য N −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