আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা সংখ্যার অ্যারে নেয়। সংখ্যার বিন্যাসে ধনাত্মক এবং ঋণাত্মক উভয় সংখ্যাই থাকতে পারে।
আমাদের ফাংশনের উদ্দেশ্য হল অ্যারে (যেকোন দৈর্ঘ্যের) থেকে সাব অ্যারে খুঁজে বের করা, যার উপাদানগুলি যোগ করলে সর্বাধিক যোগফল পাওয়া যায়। তারপর ফাংশনটি সেই সাবয়ারের উপাদানগুলির যোগফল প্রদান করবে।
যেমন −
যদি ইনপুট অ্যারে −
হয়const arr = [-2,1,-3,4,-1,2,1,-5,4];
তারপর আউটপুট −
হওয়া উচিতconst output = 6
কারণ, [4,-1,2,1] এর বৃহত্তম যোগফল 6।
উদাহরণ
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