চলুন প্রোগ্রামটি সম্পূর্ণ করার ধাপগুলো দেখি।
- অ্যারে শুরু করুন।
- 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
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।