আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যার অ্যারে নেয়। অ্যারে-তে ধনাত্মক এবং ঋণাত্মক দুটোই সংখ্যা থাকতে পারে।
ফাংশনটির উদ্দেশ্য হলো অ্যারে থেকে সাব-অ্যারে (যেকোনো দৈর্ঘ্যের) বের করা যেটির উপাদানগুলো যোগ করলে সর্বোচ্চ যোগফল আসে। তারপর সেই সাব-অ্যারে-র উপাদানগুলোর যোগফল রিটার্ন করতে হবে।
উদাহরণস্বরূপ −
ইনপুট অ্যারে যদি হয় −
const arr = [-2,1,-3,4,-1,2,1,-5,4];
তবে আউটপুট হবে −
const output = 6
কারণ, [4,-1,2,1] সাব-অ্যারে-র সর্বোচ্চ যোগফল ৬।
উদাহরণ
const arr = [-2,1,-3,4,-1,2,1,-5,4];
const maxSubArray = (arr = []) => {
let sum = arr[0], max = arr[0];
for (let i = 1; i < arr.length; ++i){
sum = Math.max(sum + arr[i], arr[i]), max = Math.max(max, sum);
};
return max;
};
console.log(maxSubArray(arr));
আউটপুট
কনসোলে আউটপুট হবে −
6