সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র আর্গুমেন্ট হিসাবে সংখ্যার একটি অ্যারে নেয়, 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