আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে সংখ্যার একটি অ্যারে নেয়, আসুন বলি arr, এবং একটি সংখ্যা, দ্বিতীয় আর্গুমেন্ট হিসাবে num বলি। ফাংশনটি দীর্ঘতম সাবয়ারের (সংলগ্ন বা অ-সংলগ্ন) দৈর্ঘ্য খুঁজে বের করে ফেরত দিতে হবে যার প্রতিটি জোড়ায় সংখ্যার কম বা সমান পরম পার্থক্য রয়েছে৷
উদাহরণস্বরূপ, যদি ইনপুট অ্যারে এবং সংখ্যা −
হয়const arr = [7, 9, 8, 6, 6, 3]; const num = 1;
তারপর আউটপুট −
হওয়া উচিতconst output = 3,
কারণ কাঙ্খিত সাবয়ারে হল [7, 6, 6]
উদাহরণ
এর জন্য কোড হবে −
const arr = [7, 9, 8, 6, 6, 3]; const maximumSubarray = (arr = [], num = 1) => { if(!arr.length){ return 0; }; const maximum = arr.reduce((acc, val) => Math.max(acc, val)); const buckets = new Array(maximum + 1); buckets.fill(0); const { length } = arr; for(let i=0; i< length; i++){ buckets[arr[i]] += num; }; let max = 0; for(let j=1; j< maximum + 1; j++) { let curr = buckets[j]; let prev = buckets[j - 1]; if(prev != 0 && prev + curr > max) { max = prev + curr; }; }; return max; }; console.log(maximumSubarray(arr));
আউটপুট
এবং কনসোলে আউটপুট হবে −
3