Greatest Sum Divisible by Three LeetCode solution in Python
1from math import inf234class Solution:5def maxSumDivThree(self, nums: List[int]) -> int:6res = 07r1_min1 = inf8r1_min2 = inf9r2_min1 = inf10r2_min2 = inf1112for v in nums:13res += v14if v % 3 == 1:15if v < r1_min1:16r1_min2 = r1_min117r1_min1 = v18elif v < r1_min2:19r1_min2 = v20elif v % 3 == 2:21if v < r2_min1:22r2_min2 = r2_min123r2_min1 = v24elif v < r2_min2:25r2_min2 = v2627if res % 3 == 1:28res -= min(r1_min1, r2_min1 + r2_min2)29elif res % 3 == 2:30res -= min(r2_min1, r1_min1 + r1_min2)3132return res