# Solving Leetcode Interviews in Seconds with AI: Count Numbers with Unique Digits


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "357" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> Given an integer n, return the count of all numbers with unique digits, x, where 0 <= x < 10n.   Example 1:  Input: n = 2 Output: 91 Explanation: The answer should be the total numbers in the range of 0 ≤ x < 100, excluding 11,22,33,44,55,66,77,88,99  Example 2:  Input: n = 0 Output: 1    Constraints:  0 <= n <= 8  

	# Explanation
	Here's the solution to the problem, explained with high-level approach, complexity analysis, and the Python code.

*   **High-level approach:**
    *   Handle the base cases (n = 0 and n = 1) separately.
    *   Iteratively calculate the count of numbers with unique digits for each length from 2 up to n. For each length, the count is derived by multiplying the number of available digits for each position. Handle leading zero carefully.
    *   Sum up the counts for all lengths from 1 to n (inclusive), plus the base case count for n=0 if n>0 or n=0.

*   **Complexity Analysis:**
    *   Runtime Complexity: O(n), where n is the input integer.
    *   Storage Complexity: O(1)

	
	# Code
	```python
	def countNumbersWithUniqueDigits(n: int) -> int:
    """
    Given an integer n, return the count of all numbers with unique digits, x, where 0 <= x < 10^n.

    For example:
    countNumbersWithUniqueDigits(2) == 91
    countNumbersWithUniqueDigits(0) == 1
    """

    if n == 0:
        return 1

    count = 10  # For n = 1 (0 to 9)
    unique_digits = 9
    available_number = 9

    for i in range(2, min(n + 1, 11)):
        unique_digits = unique_digits * available_number
        count += unique_digits
        available_number -= 1

    return count
	```
			
