কম্পিউটার

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


সমস্যা

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

আমাদের ফাংশনের ইনপুটটির জন্য একটি নতুন অ্যারে তৈরি করা উচিত যেখানে প্রতিটি সংশ্লিষ্ট উপাদান বর্তমান উপাদানের চেয়ে পরবর্তী বৃহত্তর উপাদানের দূরত্ব এবং যদি বর্তমান উপাদানটির ডানদিকে কোন বড় উপাদান না থাকে, তাহলে আমাদের সেই অনুরূপটির জন্য 0 চাপতে হবে res অ্যারেতে উপাদান এবং অবশেষে আমাদের এই অ্যারেটি ফেরত দেওয়া উচিত।

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়

ইনপুট

const arr = [12, 13, 14, 11, 16, 10, 12, 17, 19, 18];

আউটপুট

const output = [1, 1, 2, 1, 3, 1, 1, 1, 0, 0];

আউটপুট ব্যাখ্যা

কারণ 12-এর পরবর্তী বৃহত্তর উপাদান হল 13, 1 ব্লক দূরে,

13 এর পরের 14, 1 ব্লক দূরে,

14 এর পরেরটি 16, 2 ব্লক দূরে এবং আরও অনেক কিছু৷

নিম্নলিখিত কোড -

উদাহরণ

const arr = [12, 13, 14, 11, 16, 10, 12, 17, 19, 18];
const findNextGreater = (arr = []) => {
   const stack = []
   const res = new Array(arr.length).fill(0)
   for (let i = 0; i < arr.length; i++) {
      while (arr[i] > arr[stack[stack.length - 1]] && stack.length > 0) {
         const index = stack.pop()
         res[index] = i - index
      }
      stack.push(i)
   };
   return res
};
console.log(findNextGreater(arr));

আউটপুট

[1, 1, 2, 1, 3, 1, 1, 1, 0, 0]

  1. জাভাস্ক্রিপ্টে প্রতিটি নোডের জন্য পরবর্তী বৃহত্তর নোড খোঁজা হচ্ছে

  2. C++ এ পরবর্তী বৃহত্তর উপাদান

  3. C++ এ পরবর্তী বৃহত্তর উপাদান III

  4. C++ এ পরবর্তী বৃহত্তর এলিমেন্ট II