03. Find Maximum Equal sum of Three Stacks
The problem can be found at the following link: Question Link
My Approach
To find the maximum equal sum among three given arrays (S1, S2, and S3), I have used the following approach:
Initialize an unordered map
mpto store the cumulative sums of the elements encountered so far and their frequencies.Traverse the first array (
S1) in reverse order. At each index, calculate the cumulative sumsby adding the current element to the previous sum. Increment the frequency ofsin the mapmp.Similarly, traverse the second array (
S2) in reverse order. At each index, calculate the cumulative sumsby adding the current element to the previous sum. Check ifsexists in the mapmp. If it does, increment its frequency in the map.Repeat the same process for the third array (
S3).Iterate through the map
mpand find the maximum sum (out) for which the frequency is equal to 3.Finally, return the value of
out.
Time and Auxiliary Space Complexity
Time Complexity:
O(N1 + N2 + N3), whereN1,N2, andN3are the sizes of the arraysS1,S2, andS3, respectively. We traverse each array once in reverse order, perform constant-time operations, and iterate through the mapmpto find the maximum sum.Auxiliary Space Complexity: The auxiliary space complexity is
O(N1 + N2 + N3)as we use the unordered mapmpto store the cumulative sums and their frequencies.
Code (C++)
class Solution{
public:
int maxEqualSum(int N1, int N2, int N3, vector<int> &S1, vector<int> &S2, vector<int> &S3){
unordered_map<int, int> mp;
int s = 0;
for(int i = N1 - 1; i >= 0; --i){
s += S1[i];
++mp[s];
}
s = 0;
for(int i = N2 - 1; i >= 0; --i){
s += S2[i];
if(mp.find(s) != mp.end())
++mp[s];
}
s = 0;
for(int i = N3 - 1; i >= 0; --i){
s += S3[i];
if(mp.find(s) != mp.end())
++mp[s];
}
int out = 0;
for(auto i: mp){
if(i.second == 3){
out = max(out, i.first);
}
}
return out;
}
};Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star to the getlost01/gfg-potd repository.
Last updated
Was this helpful?