কম্পিউটার

জাভাস্ক্রিপ্টে সার্কুলার অ্যারেতে পরবর্তী বৃহত্তর উপাদান


বৃত্তাকার অ্যারে

একটি অ্যারে যেখানে শেষ উপাদানটির পরবর্তী উপাদানটি অ্যারের প্রথম উপাদানটিকে প্রায়শই বৃত্তাকার বলা হয়৷

স্পষ্টতই, এই ধরনের ডেটা সঞ্চয় করার মতো কোনও ব্যবস্থা নেই, ডেটা এখনও অবিচ্ছিন্ন মেমরি ব্লকগুলিতে সংরক্ষণ করা হবে এবং বৃত্তাকার অ্যারেগুলি বাস্তবের চেয়ে একটি ধারণার মতো৷

সমস্যা

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

ফাংশনটি তখন একটি অ্যারে তৈরি করে ফেরত দেয় যাতে মূল অ্যারের প্রতিটি সংশ্লিষ্ট উপাদানের জন্য পরবর্তী বৃহত্তর উপাদান থাকে। একটি সংখ্যার পরবর্তী বৃহত্তর সংখ্যা, num বলুন, অ্যারের পরবর্তী ট্র্যাভার্সিং-অর্ডারের প্রথম বৃহত্তর সংখ্যা (আমাদের ক্ষেত্রে সঠিক), যার মানে আমরা এর পরবর্তী বৃহত্তর সংখ্যাটি খুঁজে পেতে বৃত্তাকারভাবে অনুসন্ধান করতে পারি। যদি এটি বিদ্যমান না থাকে, তাহলে আমাদের এই সংখ্যার জন্য -1 বিবেচনা করা উচিত।

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

const arr = [7, 8, 7];

তারপর আউটপুট −

হওয়া উচিত
const output = [8, -1, 8];

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

অ্যারেতে 7s উভয়ের পরেই 8 এবং যেহেতু অ্যারেটি বৃত্তাকার কিন্তু 8 এর জন্য কোন বড় উপাদান নেই তাই আমরা এটির জন্য -1 রাখি।

উদাহরণ

এর জন্য কোড হবে −

const arr = [7, 8, 7];
const nextGreaterElement = (arr = []) => {
   const res = [];
   const stack = [];
   if (!arr || arr.length < 1){
      return res;
   };
   for (let i = 0; i < arr.length; i++) {
      while (stack.length > 0 && arr[stack[stack.length - 1]] < arr[i]) {
         const small = stack.pop();
         res[small] = arr[i];
      };
      stack.push(i);
   }
   for (let i = 0; i < arr.length; i++) {
      while (stack.length > 0 && arr[stack[stack.length - 1]] < arr[i]) {
         const small = stack.pop();
         res[small] = arr[i];
      };
   }
   const rem = stack.length;
   for (let i = 0; i < rem; i++) {
      res[stack.pop()] = -1;
      }
      return res;
   };
console.log(nextGreaterElement(arr));

কোড ব্যাখ্যা:

অ্যারের উপর পুনরাবৃত্তি করার সময় যদি আমরা স্ট্যাকের মধ্যে একটির চেয়ে বড় একটি উপাদান খুঁজে পাই, আমরা res[small] কে বর্তমান বৃহত্তর উপাদানটিতে সেট করি।

এখন, আমরা আবার arr এর শুরু থেকে শুরু করি এবং এমন উপাদানগুলির সাথে ডিল করি যার জন্য আমরা লুপের জন্য আগের একটি পরবর্তী বড় উপাদান খুঁজে পাইনি। অবশেষে, এখনও কিছু উপাদান থাকবে যার জন্য পরবর্তী বৃহত্তর উপাদান নেই।

আউটপুট

এবং কনসোলে আউটপুট হবে −

[8, -1, 8]

  1. জাভাস্ক্রিপ্টে একটি অ্যারে থেকে একটি উপাদান সরানো হচ্ছে

  2. জাভাস্ক্রিপ্ট ব্যবহার করে একটি অ্যারেতে একটি উপাদান যোগ করা

  3. একটি জাভাস্ক্রিপ্ট অ্যারে প্রথম উপাদান এবং শেষ উপাদান?

  4. একটি অ্যারের শেষ উপাদান প্রিন্ট করতে জাভাস্ক্রিপ্ট কোড