思路:这道题要求0<=x < 10^n的不重复数字的个数。因此,我们可以考虑1位时、2位时、3位时。。。然后累加起来。
注意此时首位不为0。
代码如下:
public class Solution {
public int countNumbersWithUniqueDigits(int n) {
int sum = 0;
if(n <= 10){
for(int i = 1;i<=n;i++){
int base = 9;
for(int j = 0;j<i-1;j++){
base *= (9-j);
}
sum+=base;
}
sum++;//全0;
}
return sum;
}
}