本文主要是介绍357. 计算各个位数不同的数字个数——动态规划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。
class Solution {
public:int countNumbersWithUniqueDigits(int n) {vector<int> dp(n + 1);//特殊情况 n = 0时if(n == 0)return 1;//特殊情况 n = 1时if(n == 1)return 10;dp[1] = 9;int sum = 10;//剩下的dp[i]就是排列组合了for(auto i = 2; i <= n; ++i){dp[i] = dp[i - 1] * (11 - i);sum += dp[i];}return sum;}
};
Accepted
9/9 cases passed (0 ms)
Your runtime beats 100 % of cpp submissions
Your memory usage beats 74.44 % of cpp submissions (5.8 MB)
这篇关于357. 计算各个位数不同的数字个数——动态规划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!