এই টিউটোরিয়ালে, আমরা একটি অ্যারের মধ্যে একটি উইন্ডোর সর্বাধিক সম্ভাব্য যোগফল খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব যাতে অন্য অ্যারের একই উইন্ডোর উপাদানগুলি অনন্য হয়৷
এর জন্য আমাদের সমান সংখ্যক উপাদান সহ দুটি অ্যারে সরবরাহ করা হবে। আমাদের কাজ হল সর্বাধিক যোগফল সহ একটি উপাদানে উইন্ডোটি খুঁজে বের করা যাতে অন্য অ্যারেতে একই উইন্ডো অনন্য হয়৷
উদাহরণ
#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