题目:
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]
)
Credits:
Special thanks to @memoryless for adding this problem and creating all test cases.
代码:
#include<numeric> class Solution { public: int countNumbersWithUniqueDigits(int n) { vector<int> c(n+1, 0); c[0] = 1; c[1] = 9; int cnt = 9; for(int i = 1; i < n; i++){ cnt *= (10 - i); c[i+1] = cnt; } return accumulate(c.begin(), c.end(), 0); } };