1537. Get the Maximum Score (Hard) - TengnanYao/daily_leetcode GitHub Wiki
class Solution(object):
def maxSum(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: int
"""
n1, n2 = len(nums1), len(nums2)
result = s1 = s2 = 0
i = j = 0
while i < n1 or j < n2:
if i == n1:
s2 += sum(nums2[j : ])
break
if j == n2:
s1 += sum(nums1[i : ])
break
if nums1[i] > nums2[j]:
s2 += nums2[j]
j += 1
elif nums1[i] < nums2[j]:
s1 += nums1[i]
i += 1
else:
result += max(s1, s2) + nums1[i]
s1 = s2 = 0
i += 1
j += 1
result += max(s1, s2)
return result % (10 ** 9 + 7)