From d8f26e03e81ee88d2d92adf114dfd8e251e65f1b Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Wed, 12 Feb 2025 11:29:24 +0000 Subject: [PATCH] https://leetcode.com/problems/max-sum-of-a-pair-with-equal-sum-of-digits --- ..._sum_of_a_pair_with_eqaul_sum_of_digits.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 medium/max_sum_of_a_pair_with_eqaul_sum_of_digits.py diff --git a/medium/max_sum_of_a_pair_with_eqaul_sum_of_digits.py b/medium/max_sum_of_a_pair_with_eqaul_sum_of_digits.py new file mode 100644 index 0000000..a38c439 --- /dev/null +++ b/medium/max_sum_of_a_pair_with_eqaul_sum_of_digits.py @@ -0,0 +1,25 @@ +# https://leetcode.com/problems/max-sum-of-a-pair-with-equal-sum-of-digits + +from typing import Dict, List +import heapq + +class Solution: + def digit_sum(self, num: int) -> int: + result = 0 + while num > 0: + result += num % 10 + num //= 10 + return result + def maximumSum(self, nums: List[int]) -> int: + d: Dict[int, list[int]] = {} + for num in nums: + s = self.digit_sum(num) + l = d.get(s, []) + heapq.heappush(l, -num) + d[s] = l + result = -1 + for k in d: + if len(d[k]) > 1: + result = max(result, -heapq.heappop(d[k]) - heapq.heappop(d[k])) + return result +