কম্পিউটার

C++-এ ন্যূনতম k সংখ্যা সহ বৃহত্তম যোগফল সাব্যারে


চলুন প্রোগ্রামটি সম্পূর্ণ করার ধাপগুলো দেখি।

  • অ্যারে শুরু করুন।
  • n আকারের max_sum অ্যারে শুরু করুন।
  • প্রতিটি সূচকের জন্য সর্বোচ্চ যোগফল খুঁজুন এবং max_sum অ্যারেতে সংরক্ষণ করুন।
  • সমস্ত উপাদানের যোগফল গণনা করুন এবং একটি পরিবর্তনশীল সমষ্টিতে সংরক্ষণ করুন।
  • একটি লুপ লিখুন যা i =k থেকে n পর্যন্ত পুনরাবৃত্তি করে।
    • সমষ্টিতে a[i] - a[i - k] যোগ করুন।
    • ফলের সর্বোচ্চ, যোগফল সহ ফলাফল আপডেট করুন।
    • ফলের সর্বোচ্চ সহ ফলাফল আপডেট করুন, যোগফল + সর্বোচ্চ_সমষ্টি[i - k]।

উদাহরণ

আসুন কোডটি দেখি।

#include<bits/stdc++.h>
using namespace std;
int getMaxSum(int a[], int n, int k) {
   int maxSum[n];
   maxSum[0] = a[0];
   int currentMax = a[0];
   for (int i = 1; i < n; i++) {
      currentMax = max(a[i], currentMax+a[i]);
      maxSum[i] = currentMax;
   }
   int sum = 0;
   for (int i = 0; i < k; i++) {
      sum += a[i];
   }
   int result = sum;
   for (int i = k; i < n; i++) {
      sum += a[i] - a[i-k];
      result = max(result, sum);
      result = max(result, sum + maxSum[i-k]);
   }
   return result;
}
int main() {
   int a[] = {5, 3, 7, -5, 6, 2, 1};
   int k = 6;
   cout << getMaxSum(a, 7, k) << endl;
   return 0;
}

আউটপুট

আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

19

উপসংহার

টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।


  1. C++ এ সর্বাধিক যোগফল সার্কুলার সাবারে

  2. C++-এ সাবারের যোগফল K সমান

  3. C++ এ যোগফল S সহ মৌলিক P এর পরে মৌলিক সংখ্যা

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