1775. Equal Sum Arrays With Minimum Number of Operations
Read the full problem statement on LeetCode.
Difficulty: medium Acceptance: 54% Topics: Array, Hash Table, Greedy, Counting
View full problem on LeetCode Reading material
Reference solution (spoiler · python)
# Time: O(m + n)
# Space: O(1)
import collections
class Solution(object):
def minOperations(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: int
"""
if len(nums1)*6 < len(nums2) or len(nums1) > len(nums2)*6:
return -1
diff = sum(nums2)-sum(nums1)
if diff < 0:
nums1, nums2 = nums2, nums1
diff = -diff
count = collections.Counter(6-num for num in nums1)
count += collections.Counter(num-1 for num in nums2)
result = 0
for i in reversed(xrange(1, 6)):
if not count[i]:
continue
cnt = min(count[i], (diff+i-1)//i)
result += cnt
diff -= i*cnt
if diff <= 0:
break
return result
Solution from kamyu104/LeetCode-Solutions · MIT
Similar questions