替换 0 后两个数组的最小相等和
Minimum Equal Sum of Two Arrays After Replacing Zeros
题目详情
问题:替换 0 后两个数组的最小相等和
考察:数组
来源:Citadel
链接:https://www.jointaro.com/interviews/questions/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.
Example 1:
Input: nums1 = [3,2,0,1,0], nums2 = [6,5,0] Output: 12 Explanation: We can replace 0's in the following way: - Replace the two 0's in nums1 with the values 2 and 4. The resulting array is nums1 = [3,2,2,1,4]. - Replace the 0 in nums2 with the value 1. The resulting array is nums2 = [6,5,1]. Both arrays have an equal sum of 12. It can be shown that it is the minimum sum we can obtain.
Example 2:
Input: nums1 = [2,0,2,0], nums2 = [1,4] Output: -1 Explanation: It is impossible to make the sum of both arrays equal.
Constraints:
1 <= nums1.length, nums2.length <= 1050 <= nums1[i], nums2[i] <= 106
解析
思路:每个 0 至少替换成 1,因此先计算两个数组的最小可能和。若两个数组都有 0,则答案是两个最小和的较大者;若只有一边有 0,需要判断它能否补到另一边;都没有 0 时必须原和相等。
复杂度:时间 O(n+m),空间 O(1)。
英文解析
Approach: Replace every zero by at least `1` and compute each array’s minimum possible sum. If both arrays contain zeros, the answer is the larger minimum sum; if only one side has zeros, it must be able to increase up to the fixed sum of the other side; if neither has zeros, the original sums must already match.
Complexity: Time , space .