LeetCode 357. 计算各个位数不同的数字个数

题目描述:
给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。

思路:
动态规划:

代码如下:

class Solution {
     
public:
    int countNumbersWithUniqueDigits(int n) {
     
        vector<int>dp(11,0);
        dp[0]=1;
        dp[1]=10;
        if(n==0)   return 1;
        else if(n==1)   return 10;
        for(int i=2;i<=n;i++){
     
            dp[i]=dp[i-1]+(dp[i-1]-dp[i-2])*(10-(i-1));
        }
        return dp[n];
    }
};

你可能感兴趣的:(leetcode,leetcode,动态规划,算法,数据结构,c++)