কম্পিউটার

জাভাস্ক্রিপ্ট ব্যবহার করে সার্কুলার অ্যারেতে সর্বাধিক সাবয়ারের যোগফল


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র যুক্তি হিসাবে পূর্ণসংখ্যা, 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

  1. জাভাস্ক্রিপ্টে TypedArray.subarray() ফাংশন

  2. জাভাস্ক্রিপ্টে একটি অ্যারের সর্বাধিক মান কীভাবে খুঁজে পাবেন?

  3. জাভাস্ক্রিপ্ট ব্যবহার করে অ্যারেতে নেস্টেড অবজেক্টের মানের সমষ্টি

  4. জাভাস্ক্রিপ্ট অবজেক্টের অ্যারের অ্যারের পদ্ধতি ব্যবহার করছেন?