其他陣列中的同一視窗的元素是唯一的,C++ 中陣列視窗的最大可能總和
在本教程中,我們將討論一個程式,該程式可查詢陣列視窗的最大可能總和,使得其他陣列中的相同視窗中的元素是唯一的。
為此,我們將提供兩個元素數量相等的陣列。我們的任務是找到一個元素中總和最大的視窗,使得另一個數組中的相同視窗是唯一的。
示例
#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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP