Largest Multiple of Three LeetCode solution in Python
1class Solution:2def largestMultipleOfThree(self, digits: List[int]) -> str:3A = digits4A.sort()5A.reverse()67@cache8def DP(9i, r10): # max number whose remainder is r using subarray [0:i] (inclusive)11if i == 0:12if A[0] % 3 == r:13return A[0]14else:15return 01617Ra = DP(i - 1, r)18Rb = [19x for j in range(3) for x in (DP(i - 1, j) * 10 + A[i],) if x % 3 == r20]2122return max([Ra, *Rb])2324ans = DP(len(A) - 1, 0)2526if ans == 0 and 0 not in A:27return ""28else:29return str(ans)