LeetCode 357、统计各位数字都不同的数字个数

LeetCode 357、统计各位数字都不同的数字个数,第1张

357、统计各位数字都不同的数字个数

1)题目描述

给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10^n


示例 1:

输入:n = 2
输出:91
解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。


示例 2:

输入:n = 0
输出:1

提示:

  • 0 <= n <= 8

2)分析

使用排列组合。


  • n=0时,只有0这一个;
  • n=1时,有0,1, 2, …, 9这十个;
  • n>=2时,考虑到第一位有1, 2, …, 9这九种选择,第二位有0, 1, 2, …, 9除去第一位的选择的九种选择,第三位有八种,第四位有七种……第n-1位有9-(n-3)种。


    前面n-1位的可能选择相乘,再加上n-1位数时候的结果即可。


3)C++代码

class Solution {
public:
    int countNumbersWithUniqueDigits(int n) {
        //n<=1
        if(n<=1)
            return pow(10,n);
        int res=10;
        int diffCntCur=9;
        for(int i=0;i

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/621769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-15
下一篇 2022-04-15

发表评论

登录后才能评论

评论列表(0条)