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

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

示例:

输入: 2
输出: 91
解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-numbers-with-unique-digits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

class Solution:
    def countNumbersWithUniqueDigits(self, n: int) -> int:
        if n==0:return 1
        dp=[0]*9
        dp[1]=9
        for i in range(2,9):
            dp[i]=dp[i-1]*(9-i+2)
        dp[1]=10
        res=0
        for i in range(n+1):
            res+=dp[i]
        return res

 

posted @ 2020-10-29 22:00  XXXSANS  阅读(138)  评论(0编辑  收藏  举报