码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode- Count Numbers with Unique Digits

时间:2016-07-31 09:09:00      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.

Example:
Given n = 2, return 91. (The answer should be the total numbers in the range of 0 ≤ x < 100, excluding [11,22,33,44,55,66,77,88,99])

Analysis:

A number of unique digits is a number which is a combination of unrepeated digits. So, we can calculate the total number. for number with n digits, like 100-999 or 1000-9999, the total numbers with unique digits equals to 9*9*8...*(11-n). because the highest digit cannot be 0.

 

Solution:

 1 public class Solution {
 2     public int countNumbersWithUniqueDigits(int n) {
 3         if (n==0) return 1;
 4         
 5         int res = 10;
 6         int cur = 9;
 7         for (int i=2;i<=Math.min(10,n);i++){
 8             cur = cur*(11-i);
 9             res += cur;
10         }
11         return res;
12     }
13 }

 

LeetCode- Count Numbers with Unique Digits

标签:

原文地址:http://www.cnblogs.com/lishiblog/p/5722317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!