इस ट्यूटोरियल में, हम अधिकतम योग सबएरे को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे जैसे कि प्रारंभ और समाप्ति मान समान हैं।
इसके लिए हमें पूर्णांकों वाली एक सरणी प्रदान की जाएगी। हमारा काम सबएरे को अधिकतम योग के साथ खोजना है जैसे कि तत्व इसके दोनों छोर बराबर हैं।
उदाहरण
#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