class Solution {
public:
int countNumbersWithUniqueDigits(int n) {
}
};
357. 统计各位数字都不同的数字个数
给你一个整数n
,统计并返回各位数字都不同的数字 x
的个数,其中 0 <= x < 10n
。
示例 1:
输入:n = 2
输出:91
解释:答案应为除去 11、22、33、44、55、66、77、88、99
外,在 0 ≤ x < 100 范围内的所有数字。
示例 2:
输入:n = 0 输出:1
提示:
0 <= n <= 8
原站题解
python3 解法, 执行用时: 40 ms, 内存消耗: 13.4 MB, 提交时间: 2020-11-26 14:22:11
class Solution: def countNumbersWithUniqueDigits(self, n: int) -> int: if n == 0: return 1 if n > 10: n = 10 ans, summ, base = 10, 9, 9 for i in range(1, n): summ *= base ans += summ base -= 1 return ans
python3 解法, 执行用时: 44 ms, 内存消耗: 13.6 MB, 提交时间: 2020-11-26 12:03:26
class Solution: def countNumbersWithUniqueDigits(self, n: int) -> int: def help(n: int): if n == 0: return 1 if n == 1: return 9 return (11-n) * help(n-1) return sum([help(i) for i in range(n+1)])