Question
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-numbers-with-unique-digits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Ideas
1、Answer( Java )
解法思路:数学排列运算
⚡️边界条件为当 n = 0
时,0 <= x < 1
,此时直接返回 1
☝含有 d (2 ≤ d ≤ 10)
位数的各位数字都不同的数字 x
的个数可以由数学排列公式计算
Code
/**
* @author Listen 1024
* @description 357. 统计各位数字都不同的数字个数(数学排列乘法原理)
* @date 2022-04-11 8:21
*/
class Solution10 {
public int countNumbersWithUniqueDigits(int n) {
if (n == 0) {
return 1;
}
int res = 10;
for (int i = 2, last = 9; i <= n; i++) {
int cur = last * (11 - i);
res += cur;
last = cur;
}
return res;
}
}