357. Count Numbers with Unique Digits
1. Description
Given an integer n, return the count of all numbers with unique digits, x, where 0 <= x < $10^n$.
2. Example
Example 1:
Input: n = 2
Output: 91
Explanation: The answer should be the total numbers in the range of 0 ≤ x < 100, excluding 11,22,33,44,55,66,77,88,99
Example 2:
Input: n = 0
Output: 1
3. Constraints
- 0 <= n <= 8
4. Solutions
Math
Time complexity: O(n)
Space complexity: O(1)
class Solution {
public:
int countNumbersWithUniqueDigits(int n) {
int result = 0;
switch (n) {
case 8:
result += 9 * 9 * 8 * 7 * 6 * 5 * 4 * 3;
case 7:
result += 9 * 9 * 8 * 7 * 6 * 5 * 4;
case 6:
result += 9 * 9 * 8 * 7 * 6 * 5;
case 5:
result += 9 * 9 * 8 * 7 * 6;
case 4:
result += 9 * 9 * 8 * 7;
case 3:
result += 9 * 9 * 8;
case 2:
result += 9 * 9;
case 1:
result += 9;
case 0:
result += 1;
}
return result;
}
};