难度:中等
给你一个整数
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
代码:
class Solution {
public int countNumbersWithUniqueDigits(int n) {
//各位不同,首位不为零
//首位有9种选择,第二位9种,第三位8种...
int res = 1;
int temp = 9;
for (int i = 1; i <= n; i++) {
res += temp;
temp *= (10 - i);
}
return res;
}
}

该博客介绍了一个计算在0到10^n范围内,各位数字都不同的整数个数的问题。给出了一个中等难度的算法,通过循环计算首位到末位可能的不同数字组合来得出结果。示例展示了对于n=2时,除去重复数字的数字个数为91。

被折叠的 条评论
为什么被折叠?



