কম্পিউটার

সর্বাধিক যোগফল সাব্যারে যেমন শুরু এবং শেষের মান C++ এ একই


এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম নিয়ে আলোচনা করব যাতে সর্বাধিক যোগফল সাব্যারে খুঁজে পাওয়া যায় যেমন শুরু এবং শেষের মান একই।

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//finding the maximum sum
int maxValue(int a[], int n) {
   unordered_map<int, int> first, last;
   int pr[n];
   pr[0] = a[0];
   for (int i = 1; i < n; i++) {
      pr[i] = pr[i - 1] + a[i];
      if (first[a[i]] == 0)
         first[a[i]] = i;
      last[a[i]] = i;
   }
   int ans = 0;
   for (int i = 0; i < n; i++) {
      int start = first[a[i]];
      int end = last[a[i]];
      ans = max(ans, pr[end] - pr[start - 1]);
   }
   return ans;
}
int main() {
   int arr[] = { 1, 3, 5, 2, 4, 18, 2, 3 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << maxValue(arr, n);
   return 0;
}

আউটপুট

37

  1. বৃত্তাকার অ্যারেতে সর্বাধিক যোগফল যাতে C++ এ দুটি উপাদান সংলগ্ন থাকে না

  2. C++ এ সর্বাধিক সাবয়ারের সমষ্টি m মডিউল

  3. C++ এ ডিভাইড অ্যান্ড কনক্যুয়ার ব্যবহার করে সর্বাধিক যোগফল সাব-অ্যারে

  4. C++-এ ডিভাইড অ্যান্ড কনকার অ্যালগরিদম ব্যবহার করে সর্বোচ্চ সাবারে সমষ্টি