কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে এডজেসেন্ট এলিমেন্টের চেয়ে বড় এলিমেন্ট বের করা


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র আর্গুমেন্ট হিসেবে নম্বরগুলোর একটি অ্যারে নেবে।

ফাংশনটি অ্যারেতে থেকে একটি এমন নম্বর বের করবে যেটি তার ডানে ও বামে থাকা দুটি নম্বরের চেয়ে বড়। যদি একাধিক такой এলিমেন্ট থাকে, তবে যেকোনো একটি রিটার্ন করবে।

উদাহরণস্বরূপ:

যদি ইনপুট অ্যারে হয়:

const arr = [3, 6, 7, 9, 8, 2, 5];

তাহলে আউটপুট হবে:

const output = 9;

যেহেতু প্রশ্নে পিক এলিমেন্ট খুঁজতে বলা হয়েছে, আমরা বাইনারি সার্চ অ্যালগরিদমের একটি মডিফাইড ভার্সন ব্যবহার করতে পারি।

স্টেপগুলো হবে:

  • কোনো একটি এলিমেন্টে তাকান।

  • যদি পরবর্তী এবং পূর্ববর্তী এলিমেন্ট দুটোই করেন্টের চেয়ে ছোট হয়, তবে সমাধান পেয়ে গেলে, করেন্টের ইনডেক্স রিটার্ন করুন।

  • যদি পরবর্তী এলিমেন্ট করেন্টের চেয়ে বড় হয়, তবে ডানে পিক থাকতে হবে, ডানে রিকার্সিভলি খুঁজুন।

  • যদি পূর্ববর্তী এলিমেন্ট করেন্টের চেয়ে বড় হয়, তবে বামে পিক থাকতে হবে, বামে রিকার্সিভলি খুঁজুন।

উদাহরণ

নিচে কোডটি দেওয়া হলো:

const arr = [3, 6, 7, 9, 8, 2, 5]; const greaterThanAdjacent = (arr = [], start = 0, end = arr.length) => {    let mid = start + Math.floor((end - start) / 2);    let curr = arr[mid];    let prev = mid-1 < 0 ? -Infinity : arr[mid-1];    let next = mid+1 > arr.length-1 ? -Infinity : arr[mid+1];    if (curr > prev && curr > next){       return arr[mid];    }    if (curr < next){       return greaterThanAdjacent(arr, mid+1, end);    }    if (curr > next){       return greaterThanAdjacent(arr, start, mid-1);    }    return null; }; console.log(greaterThanAdjacent(arr));

আউটপুট

কনসোল আউটপুট:

9

  1. জাভাস্ক্রিপ্টে reduce() ব্যবহার করে অ্যারে উপাদানগুলোর গুণফল বের করা

  2. জাভাস্ক্রিপ্টে ব্র্যাকেটের স্কোর নির্ণয়

  3. জাভাস্ক্রিপ্টে পরবর্তী বড় উপাদানের দূরত্ব খুঁজে বের করা

  4. পাইথনে ম্যাট্রিক্সকে পূর্বের উপাদান থেকে বড় উপাদানের সংখ্যা দিয়ে সর্ট করা