আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যার একটি অ্যারে নিয়ে যায়, প্রথম আর্গুমেন্ট হিসাবে arr এবং একটি সংখ্যা, দ্বিতীয় আর্গুমেন্ট হিসাবে num বলুন৷
দ্বিতীয় আর্গুমেন্ট সবসময় অ্যারের দৈর্ঘ্যের চেয়ে ছোট বা সমান হবে। আমাদের ফাংশনটি অ্যারে থেকে ক্রমাগত উপাদানগুলির সংখ্যা খুঁজে বের করে ফেরত দিতে হবে যা সর্বাধিক যোগ করে৷
উদাহরণস্বরূপ -
যদি ইনপুট −
হয়const arr = [2,5,3,4,6]; const num = 2
উপরের ইনপুটের আউটপুটটি এইরকম হওয়া উচিত -
const output = 10
কারণ 6 এবং 4 হল সেই দুটি পরপর উপাদান যেগুলির যোগফল সর্বশ্রেষ্ঠ৷
৷আমরা একটি রৈখিক সময় এবং ধ্রুবক স্থান সমাধানে স্লাইডিং উইন্ডো কৌশল দিয়ে এই সমস্যাটি সমাধান করতে পারি।
উদাহরণ
নিম্নলিখিত কোড -
const arr = [2, 5, 3, 4, 6];
// helper function to find sum of an array
const findSum = arr => arr.reduce((acc, val) => acc + val);
const maximumSum = (arr = [], num = 1) => {
let left = 0, right = left + num;
let sum = findSum(arr.slice(left, right));
for(; right <= arr.length; right++, left++){
sum = Math.max(findSum(arr.slice(left, right)), sum);
};
return sum;
};
console.log(maximumSum(arr, 2));
console.log(maximumSum(arr, 3)); আউটপুট
নিম্নোক্ত কনসোলে আউটপুট -
10 12