leetcode 357 计算各个位数不同的数字个数
回溯标签下的水题,可以回溯,但是本身很简单直接算了。一个注意点,三元运算符的优先级问题。
class Solution {
public int countNumbersWithUniqueDigits(int n) {
if(n==0) return 1;
if(n>10) n = 10;
int res = 0;
for(int i = 1;i <= n;i++){
int tmp1 = 1;
for(int j = 10;j >= 11-i;j--)
tmp1 *= j;
//System.out.println(tmp1);
int tmp2 = 1;
for(int j = 9; j >= 11-i;j--)
tmp2 *= j;
//System.out.println(tmp2);
res += (tmp1 - (tmp2==1?0:tmp2));
//System.out.println(res);
}
return res;
}
}
0ms 35.5MB