博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 357. Count Numbers with Unique Digits
阅读量:4963 次
发布时间:2019-06-12

本文共 768 字,大约阅读时间需要 2 分钟。

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

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])

分析

这道题求在 0 ≤ x < 10^n 范围内各位数不相同的数有多少个,可以分为一位数不同的有多少个,两位数不同的有多少个,三位数不同的有多少个等等,根据提示中所给的公式,1位数字有10个,第k位有f(k) = 9 * 9 * 8 * … (9 – k + 2)个,累加从2位到n位的f(k)的总和,再加上1位的10个数字,即为所求~

class Solution {public:    int countNumbersWithUniqueDigits(int n) {        int t=9,cnt=10;        if(n==0) return 1;        else if(n==1) return 10;        else if(n>10) return 0;        else           for(int i=2;i<=n;i++){             t*=(9-i+2);             cnt+=t;          }        return cnt;    }};

转载于:https://www.cnblogs.com/A-Little-Nut/p/10061156.html

你可能感兴趣的文章
mac安装mysql的两种方法(含配置)
查看>>
Python模块学习------Matplotlib
查看>>
模板模式
查看>>
qt5 移植 交叉编译出现错误
查看>>
jQuery使用简单示例 validate 插件
查看>>
表单2-下拉菜单
查看>>
java 12-5 StringBuffer的几个案例
查看>>
centos6的JDK安装
查看>>
hdu1384Intervals(差分约束)
查看>>
无论后来怎样,你应该依然坚持你的初衷
查看>>
使用程序修改系统(IE)代理设置
查看>>
Eclipse常用快捷键与IDEA中的对比.
查看>>
memortstream Base64编码和filestream base64编码不同
查看>>
2016.3.9-3.10(java集合框架)
查看>>
ptyhon之路day4-称空间与作用域及函数2高阶函数
查看>>
Caffe 抽取CNN网络特征 Python
查看>>
Fast RCNN 训练自己的数据集(3训练和检测)
查看>>
Oracle学习(八)RECORD(自定义结构)
查看>>
PHP+Mysql学习笔记
查看>>
js与Jquery的对比
查看>>