Leetcode 3483. Unique 3-Digit Even Numbers
- Leetcode 3483. Unique 3-Digit Even Numbers
- 1. 解题思路
- 2. 代码实现
- 题目链接:3483. Unique 3-Digit Even Numbers
1. 解题思路
这一题其实是一个easy的题目,因为限制条件有限,最暴力的方法就是直接遍历一下100到999的全部数字,看看那些数字可以被构成即可。
我们这里稍微做的复杂了一点,用了迭代的思路,分别考察每一位上的可取数字,看起来更好看了一些而已……
2. 代码实现
给出python代码实现如下:
class Solution:
def totalNumbers(self, digits: List[int]) -> int:
cnt = Counter(digits)
def dp(idx):
if idx == 2:
return len([i for i in range(0, 10, 2) if cnt[i] != 0])
ans = 0
st = 0 if idx == 1 else 1
for i in range(st, 10):
if cnt[i] > 0:
cnt[i] -= 1
ans += dp(idx+1)
cnt[i] += 1
return ans
return dp(0)
提交代码评测得到:耗时19ms,占用内存18.2MB。