首页 > 其他 > 详细

[Leetcode] 第357题 计算各个位数不同的数字个数

时间:2018-12-24 22:25:07      阅读:177      评论:0      收藏:0      [点我收藏+]

 

一、题目描述

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

示例:

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

二、题目解析

排列组合。第一位有9种,第二位有9种,....第10位有1种,大于10位肯定有重复,返回0

三、代码实现

class Solution {
public:
    int countNumbersWithUniqueDigits(int n) {
        if (!n)return 1;
        if (n > 10)return 0;
        int res = 10, tmp = 9;
        for (int i = 1; i < n; ++i) {
            tmp *= (10 - i);
            res += tmp;
        }
        return res;
    }
};

 

[Leetcode] 第357题 计算各个位数不同的数字个数

原文:https://www.cnblogs.com/zhizhiyu/p/10171283.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!