今天打球未遂,再加睡眠不足,简直身体精神双重刺激,可以算得上是苦心志劳体肤了。鼓掌。
357. Count Numbers with Unique Digits
思路
先给个差评,直接莽出了最优解,只有阶乘部分勉强算是dp,几乎没有什么价值。基本上算是一个全排列的想法,懒得多说,直接上代码。
PS:几百年第一次击败了100%,呵呵。
代码
class Solution {
public:
int fact(int n){
if (n == 0) return 1;
return fact(n-1) * n;
}
int countNumbersWithUniqueDigits(int n) {
if (n > 9) n = 9;
int ret = 1; //for zero
for (int i = 1; i <= n; i++) {
ret += 9 * fact(9) / fact(10-i);
}
return ret;
}
};