কম্পিউটার

জাভাস্ক্রিপ্টে তার সংলগ্ন উপাদানগুলির চেয়ে বড় উপাদান খোঁজা৷


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

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

যেমন −

যদি ইনপুট অ্যারে −

হয়
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. JavaScript-এ reduce() দিয়ে অ্যারে উপাদানের পণ্য খুঁজে বের করা

  2. জাভাস্ক্রিপ্টে বন্ধনীর স্কোর খোঁজা

  3. জাভাস্ক্রিপ্টে পরবর্তী বৃহত্তর উপাদানের দূরত্ব খোঁজা

  4. পাইথন - আগের উপাদানের চেয়ে বেশি উপাদানের সংখ্যা অনুসারে ম্যাট্রিক্স সাজান