आइए कार्यक्रम को पूरा करने के चरणों को देखें।
- सरणी प्रारंभ करें।
- n आकार की max_sum सरणी प्रारंभ करें।
- प्रत्येक अनुक्रमणिका के लिए अधिकतम योग ढूंढें और उसे max_sum सरणी में संग्रहीत करें।
- सभी तत्वों के योग की गणना करें और इसे एक चर योग में संग्रहित करें।
- एक लूप लिखें जो i =k से n तक पुनरावृत्त हो।
- योग में a[i] - a[i - k] जोड़ें।
- परिणाम को अधिकतम परिणाम, योग के साथ अपडेट करें।
- परिणाम को अधिकतम परिणाम, योग + max_sum[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
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।