# Count Numbers with Unique Digits

Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.

Example:
Given n = 2, return 91. (The answer should be the total numbers in the range of 0 ≤ x < 100, excluding [11,22,33,44,55,66,77,88,99])

Hint:

1. A direct way is to use the backtracking approach.
2. Backtracking should contains three states which are (the current number, number of steps to get that number and a bitmask which represent which number is marked as visited so far in the current number). Start with state (0,0,0) and count all valid number till we reach number of steps equals to 10n.
3. This problem can also be solved using a dynamic programming approach and some knowledge of combinatorics.
4. Let f(k) = count of numbers with unique digits with length equals k.
5. f(1) = 10, ..., f(k) = 9 * 9 * 8 * ... (9 - k + 2) [The first factor is 9 because a number cannot start with 0].

1位：f(1) =  10
2位:  f(2) = 9*9
3位：f(3) = 9*9*8
4位：f(4) = 9*9*8*7

public class Solution {
public int countNumbersWithUniqueDigits(int n) {
if(n==0) return 1;
int countbit = 0;
int rn = (int)Math.pow(10,n);
while(rn!=0){
rn = rn/10;
countbit++;
}
countbit--;
if(countbit == 1){
return 10;
} else {
int fres = 0;
int res = 9;
for(int i=2; i<=countbit; i++){
res *=  (9-i+2);
fres += res;
}
fres += 10;
return fres;
}
}
}

• 本文已收录于以下专栏：

## <LeetCode OJ> 357. Count Numbers with Unique Digits

Total Accepted: 450 Total Submissions: 1077 Difficulty: Medium Given a non-negative integer n, ...

## LeetCode 357. Count Numbers with Unique Digits

357. Count Numbers with Unique DigitsGiven a non-negative integer n, count all numbers with unique d...

## 357. Count Numbers with Unique Digits统计各位不同的数字个数

Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x n. Example: G...

## LeetCode #357 - Count Numbers with Unique Digits - Medium

ProblemGiven a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. H...
• Arcome
• 2016年11月02日 08:10
• 175

举报原因： 您举报文章：Count Numbers with Unique Digits 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)