কম্পিউটার টিউটোরিয়াল

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


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি পূর্ণসংখ্যার অ্যারে arr প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।

আমরা এই অ্যারে 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. জাভাস্ক্রিপ্ট অবজেক্টের অ্যারেতে অ্যারে মেথডগুলো ব্যবহার করা