কম্পিউটার

জাভাস্ক্রিপ্টে সাবয়ারের সর্বাধিক সংলগ্ন যোগফল


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা ধনাত্মক এবং ঋণাত্মক পূর্ণসংখ্যার অ্যারের অ্যারে নেয়। যেহেতু অ্যারেতে নেতিবাচক উপাদানও রয়েছে, তাই সংলগ্ন উপাদানগুলির যোগফল সম্ভবত নেতিবাচক বা ধনাত্মক হতে পারে৷

আমাদের ফাংশন অ্যারে থেকে সংলগ্ন উপাদানগুলির একটি অ্যারে বাছাই করা উচিত যা সর্বশ্রেষ্ঠ যোগফল। অবশেষে, ফাংশনটিকে সেই অ্যারেটি ফিরিয়ে দেওয়া উচিত।

উদাহরণস্বরূপ -

যদি ইনপুট অ্যারে −

হয়
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 ]

  1. জাভাস্ক্রিপ্টে নেস্টেড অ্যারের ওজনের যোগফল

  2. জাভাস্ক্রিপ্টে সাবয়ারের সর্বাধিক যোগফল খুঁজে পেতে Kadane এর অ্যালগরিদম ব্যবহার করে

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

  4. C++ এ ধারাবাহিক অ্যারে