[LeetCode] Minimum Equal Sum of Two Arrays After Replacing Zeros

2918. Minimum Equal Sum of Two Arrays After Replacing Zeros

You are given two arrays nums1 and nums2 consisting of positive integers.

You have to replace all the 0‘s in both arrays with strictly positive integers such that the sum of elements of both arrays becomes equal.

Return the minimum equal sum you can obtain, or -1 if it is impossible.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution {
public:
long long minSum(vector<int>& nums1, vector<int>& nums2) {
long long sum1 = 0, sum2 = 0, c1 = 0, c2 = 0;
for(auto& n : nums1) {
sum1 += n;
if(n == 0) c1 += 1;
}
for(auto& n : nums2) {
sum2 += n;
if(n == 0) c2 += 1;
}
if(c1 == 0 and c2 == 0) {
if(sum1 == sum2) return sum1;
return -1;
}
if(c1 == 0) {
if(sum2 + c2 <= sum1) return sum1;
return -1;
}
if(c2 == 0) {
if(sum1 + c1 <= sum2) return sum2;
return -1;
}
return max(sum1 + c1, sum2 + c2);
}
};

Author: Song Hayoung
Link: https://songhayoung.github.io/2023/10/29/PS/LeetCode/minimum-equal-sum-of-two-arrays-after-replacing-zeros/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.