357 - Count Numbers With Unique Digits
    Written on November  7, 2017
    
    
    
    
    
    Tweet
  Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.
class Solution(object):
    def countNumbersWithUniqueDigits(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n == 0:
            return 1
        ret = 10
        available_number = 9
        unique_digit = 9
        while n > 1:
            unique_digit *= available_number
            ret += unique_digit
            n -= 1
            available_number -= 1
        return ret