

from typing import Listclass Solution:def findEvenNumbers(self, digits: List[int]) -> List[int]:# 统计 digits 中每个数字(0-9)的出现次数。cnt = [0] * 10for d in digits:cnt[d] += 1ans = []# i=0 百位,i=1 十位,i=2 个位,x 表示当前正在构造的数字def dfs(i: int, x: int):if i == 3:ans.append(x)returnfor d, c in enumerate(cnt):# 百位(i=0):不能为 0(d > 0)。# 十位(i=1):可以是任意数字(0-9)。# 个位(i=2):必须是偶数(d % 2 == 0)。if c > 0 and (i == 0 and d > 0 or i == 1 or i == 2 and d % 2 == 0):cnt[d] -= 1 # 消耗一个数字 d# 当前已经构造的数字(初始为 0)dfs(i + 1, x * 10 + d)cnt[d] += 1 # 复原dfs(0, 0)return ansa = Solution()
print(a.findEvenNumbers(digits = [2,1,3,0]))