কম্পিউটার

জাভাস্ক্রিপ্টে একক পার্থক্য সহ দীর্ঘতম সাবরে


সমস্যা

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

আমাদের ফাংশনটি এমন একটি সাবয়ারের দৈর্ঘ্য খুঁজে পাওয়া উচিত এবং ফেরত দেওয়া উচিত যেখানে এর সর্বোচ্চ মান এবং এর সর্বনিম্ন মানের মধ্যে পার্থক্য ঠিক 1 .

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

const arr = [2, 4, 3, 3, 6, 3, 4, 8];

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

হওয়া উচিত
const output = 5;

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

কারণ কাঙ্খিত সাবারে হল [4, 3, 3, 3, 4]

উদাহরণ

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

const arr = [2, 4, 3, 3, 6, 3, 4, 8];
const longestSequence = (arr = []) => {
   const map = arr.reduce((acc, num) => {
      acc[num] = (acc[num] || 0) + 1
      return acc
   }, {})

   return Object.keys(map).reduce((max, key) => {
      const nextKey = parseInt(key, 10) + 1
   if (map[nextKey] >= 0) {
      return Math.max(
         max,
         map[key] + map[nextKey],
      )
   }
   return max
   }, 0);
};
console.log(longestSequence(arr));

আউটপুট

নিম্নোক্ত কনসোল আউটপুট -

5

  1. উদাহরণ সহ JavaScript getPrototypeOf

  2. উদাহরণ সহ জাভাস্ক্রিপ্টে উত্তরাধিকার

  3. জাভাস্ক্রিপ্টে 0 এবং 1 সহ সংলগ্ন সাব্যারে

  4. জাভাস্ক্রিপ্টে ক্রমবর্ধমান মানের সাথে সবচেয়ে বড় সূচক পার্থক্য