আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা ধনাত্মক এবং ঋণাত্মক পূর্ণসংখ্যার অ্যারের অ্যারে নেয়। যেহেতু অ্যারেতে নেতিবাচক উপাদানও রয়েছে, তাই সংলগ্ন উপাদানগুলির যোগফল সম্ভবত নেতিবাচক বা ধনাত্মক হতে পারে৷
আমাদের ফাংশন অ্যারে থেকে সংলগ্ন উপাদানগুলির একটি অ্যারে বাছাই করা উচিত যা সর্বশ্রেষ্ঠ যোগফল। অবশেষে, ফাংশনটিকে সেই অ্যারেটি ফিরিয়ে দেওয়া উচিত।
উদাহরণস্বরূপ -
যদি ইনপুট অ্যারে −
হয়const arr = [-2, -3, 4, -1, -2, 1, 5, -3];
তারপর সর্বাধিক সম্ভাব্য যোগফল 7 এবং আউটপুট সাব্যারে −
হওয়া উচিতconst output = [4, -1, -2, 1, 5];
উদাহরণ
নিচের কোডটি-
const arr = [-2, -3, 4, -1, -2, 1, 5, -3];
const maximumSubarray = (arr = []) => {
let max = -Infinity;
let currentSum = 0;
let maxStartIndex = 0;
let maxEndIndex = arr.length - 1;
let currentStartIndex = 0;
arr.forEach((currentNumber, currentIndex) => {
currentSum += currentNumber;
if (max < currentSum) {
max = currentSum;
maxStartIndex = currentStartIndex;
maxEndIndex = currentIndex;
}
if (currentSum < 0) {
currentSum = 0;
currentStartIndex = currentIndex + 1;
}
});
return arr.slice(maxStartIndex, maxEndIndex + 1);
};
console.log(maximumSubarray(arr)); আউটপুট
নিম্নোক্ত কনসোলে আউটপুট -
[ 4, -1, -2, 1, 5 ]