2342. Max Sum of a Pair With Equal Sum of Digits
2342. Max Sum of a Pair With Equal Sum of Digits
這一個題目和 2260. Minimum Consecutive Cards to Pick Up 有點像,但是有一個比較特別的地方,那就是這個題目的 key 是 digit sum ,像是 18 和 81 會有相同的的 digit sum ,如果 18 出現的比較後面,我們還是要使用 81 的 index 才可以有最大值。
class Solution:
def maximumSum(self, nums: List[int]) -> int:
def getSumDigit(num: int):
res = 0
while num != 0:
res += num % 10
num = num // 10
return res
table = {}
res = float('-inf')
for i in range(len(nums)):
num = nums[i]
sumDigit = getSumDigit(num)
if sumDigit in table:
res = max(res, num + nums[table[sumDigit]])
if num >= nums[table[sumDigit]]:
table[sumDigit] = i
else:
table[sumDigit] = i
return -1 if res == float('-inf') else res