সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র যুক্তি হিসাবে পূর্ণসংখ্যা, arr-এর একটি অ্যারে নেয়৷
আমরা এই অ্যারে অ্যারেটিকে একটি বৃত্তাকার অ্যারে হিসাবে বিবেচনা করতে পারি, যার অর্থ অ্যারের শেষ উপাদানটি প্রথমটি অনুসরণ করবে। আমাদের ফাংশনটি arr-এর একটি অ-খালি সাবয়ারের সর্বাধিক সম্ভাব্য যোগফল খুঁজে পাওয়া উচিত এবং ফেরত দেওয়া উচিত৷
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়
ইনপুট
const arr = [2, -2, 3, -1];
আউটপুট
const output = 4;
আউটপুট ব্যাখ্যা
কারণ কাঙ্খিত সাবারে হল [3, -1, 2]
উদাহরণ
const arr = [2, -2, 3, -1]; const maxSubarraySumCircular = (arr = []) => { let max = arr[0] let min = arr[0] let currentMax = max let currentMin = min let sum = arr[0] for (let i = 1; i < arr.length; i++) { currentMax = arr[i] + Math.max(currentMax, 0) max = Math.max(max, currentMax) currentMin = arr[i] + Math.min(currentMin, 0) min = Math.min(min, currentMin) sum += arr[i] } return max < 0 ? max : Math.max(max, sum - min) } console.log(maxSubarraySumCircular(arr));
আউটপুট
4