इस ट्यूटोरियल में, हम एक ऐरे में विंडो के अधिकतम संभव योग को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, ताकि दूसरे एरे में एक ही विंडो के एलिमेंट्स यूनिक हों।
इसके लिए हमें समान संख्या में तत्वों के साथ दो सरणियाँ प्रदान की जाएंगी। हमारा कार्य विंडो को एक तत्व में अधिकतम योग के साथ ढूंढना है ताकि अन्य सरणी में वही विंडो अद्वितीय हो।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
//returning maximum sum window
int returnMaxSum(int A[], int B[], int n) {
//storing elements with their count
unordered_set<int> mp;
int result = 0;
int curr_sum = 0, curr_begin = 0;
for (int i = 0; i < n; ++i) {
while (mp.find(A[i]) != mp.end()) {
mp.erase(A[curr_begin]);
curr_sum -= B[curr_begin];
curr_begin++;
}
mp.insert(A[i]);
curr_sum += B[i];
result = max(result, curr_sum);
}
return result;
}
int main() {
int A[] = { 0, 1, 2, 3, 0, 1, 4 };
int B[] = { 9, 8, 1, 2, 3, 4, 5 };
int n = sizeof(A)/sizeof(A[0]);
cout << returnMaxSum(A, B, n);
return 0;
} आउटपुट
20