কম্পিউটার

C++ এ নির্দিষ্ট কিছু উপাদান বাদ দিয়ে সর্বোচ্চ সাবারে সমষ্টি


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

এর জন্য আমাদেরকে M এবং N আকারের দুটি অ্যারে সরবরাহ করা হবে। আমাদের কাজ হল প্রথম অ্যারেতে একটি সাব-অ্যারে খুঁজে বের করা যাতে দ্বিতীয় অ্যারের ভিতরে সাব-অ্যারের কোনো উপাদান উপস্থিত না থাকে এবং উপ-অ্যারে-এর উপাদানগুলির যোগফল হয়। সর্বোচ্চ।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//checking if element is present in second array
bool isPresent(int B[], int m, int x) {
   for (int i = 0; i < m; i++)
   if (B[i] == x)
   return true;
   return false;
}
int findMaxSubarraySumUtil(int A[], int B[], int n, int m) {
   int max_so_far = INT_MIN, curr_max = 0;
   for (int i = 0; i < n; i++) {
      if (isPresent(B, m, A[i])) {
         curr_max = 0;
         continue;
      }
      curr_max = max(A[i], curr_max + A[i]);
      max_so_far = max(max_so_far, curr_max);
   }
   return max_so_far;
}
void findMaxSubarraySum(int A[], int B[], int n, int m) {
   int maxSubarraySum = findMaxSubarraySumUtil(A, B, n, m);
   if (maxSubarraySum == INT_MIN) {
      cout << "Maximum Subarray Sum cant be found" << endl;
   } else {
      cout << "The Maximum Subarray Sum = " << maxSubarraySum << endl;
   }
}
int main() {
   int A[] = { 3, 4, 5, -4, 6 };
   int B[] = { 1, 8, 5 };
   int n = sizeof(A) / sizeof(A[0]);
   int m = sizeof(B) / sizeof(B[0]);
   findMaxSubarraySum(A, B, n, m);
   return 0;
}

আউটপুট

The Maximum Subarray Sum = 7

  1. C++-এ সর্বাধিক K অ্যারে উপাদানের চিহ্ন ফ্লিপ করে সর্বাধিক সাব্যারে যোগফল

  2. C++ এ সর্বাধিক দুটি উপাদান উল্টানোর পরে সর্বাধিক সাবারে যোগফল

  3. C++-এ সর্বোচ্চ যোগফল কঠোরভাবে বর্ধিত সাবাররে খুঁজুন

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