[leetcode] 357. 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])

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);
    }
};

猜你喜欢

转载自blog.csdn.net/jing16337305/article/details/80753917