357. Count Numbers with Unique Digits

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

给定一个非负整数n,统计[0,10n)之间仅含不同数字的数。

分析:

  给定n,求[0,10n)范围内各位均不相同的数的个数,可分别求出[0,101),[101,102),……,[10n-1,10n)各区间内符合条件的数的个数,再相加即为所求。

  求第k个区间[10k-1,10k)内包含不同数字的数,即求所有k位数中符合条件的数。可通过排列组合来求得。第1位可取1~9共9种;第2位可取0~9,除去第1位所取的数字,共9种;第3位可取0~9,除去第1、第2位所取数字,共8种,……,第k位可取0~9,除去第1~k-1位所取数字,共(10-(k-1))=11-k种,记为f(k),即f(k)=11-k。

  所以所求结果即为f(1)+f(2)+...+f(k)。

  注意:1)当n=0时,取值范围为[0,1),0符合条件,即f(0)=1。2)n>10时,11位以上的数必含有相同数字,因此,f(k)=0(k>10)。

代码如下:

int countNumbersWithUniqueDigits(int n)
{if (n <= 0) return 1;if (n == 1) return 10;int rst = 10, cnt = 2, coef = 9;int maxCnt = n > 10 ? 10 : n;while (cnt <= maxCnt){coef *= (11 - cnt);rst += coef;cnt++;}return rst;
}

  

posted on 2018-03-20 15:44 bigpotato 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/big-potato/p/8609686.html

357. Count Numbers with Unique Digits相关推荐

  1. LeetCode 357. Count Numbers with Unique Digits

    357. Count Numbers with Unique Digits Given a non-negative integer n, count all numbers with unique ...

  2. leetcode -- 357. Count Numbers with Unique Digits

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

  3. leetcode 357. Count Numbers with Unique Digits | 357. 计算各个位数不同的数字个数(Java)

    题目 https://leetcode.com/problems/count-numbers-with-unique-digits/ 题解 只要认真分析数字特点,这题不难,就是个带一些条件的排列组合. ...

  4. [LeetCode] Count Numbers with Unique Digits 计算各位不相同的数字个数

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

  5. LeetCode Count Numbers with Unique Digits(计数问题)

    题意:给出一个整数,求在[0,10^n]之间各位数字不相同的数的个数 思路:n为1时,有10个 n为2时, 十位数只能是1-9,而个数位可以为0,所以也是有9种选择 n为3时,百位数有9种选择,十位数 ...

  6. mysql unique count_MySQL - Count Number of Unique Values

    问题 If I have three columns: orderNumber, name, email and I would like to count how many unique email ...

  7. pandas使用nunique函数计算dataframe每个数据列的独特值的个数(count number of unique values in each column of dataframe)

    pandas使用nunique函数计算dataframe每个数据列的独特值的个数(count number of unique values in each column of dataframe) ...

  8. 继续过中等难度.0309

      .   8  String to Integer (atoi)    13.9% Medium   . 151 Reverse Words in a String      15.7% Mediu ...

  9. LeetCode github集合,附CMU大神整理笔记

    Github LeetCode集合 本人所有做过的题目都写在一个java项目中,同步到github中了,算是见证自己的进步.github目前同步的题目是2020-09-17日之后写的题.之前写过的题会 ...

最新文章

  1. 欢迎大家批评:CSDN Blog用户体验调查
  2. 语言模型自然语言处理[置顶] 哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(四)...
  3. 深入浅出神经网络的改进方法!
  4. 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )
  5. encryptjs 加密 前端数据(vue 使用 RSA加密、java 后端 RSA解密)
  6. C++Study 指针详解
  7. Linux-通过XShell使用sz命令提示找不到
  8. 【STM32】GPIO相关函数和类型
  9. Cloud for Customer的第一个显示的work center是怎么加载和渲染的
  10. C#/.Net Core/WPF框架初建(国际化、主题色)
  11. 缓存2 动态缓存 memcached
  12. java partialfunction,scala中方法和函数的区别
  13. windows cab文件安装
  14. Spring @Aspect实现切面编程
  15. [渝粤教育] 中国农业大学 大学计算机基础 参考 资料
  16. 网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
  17. [3] UI原型设计工具Pencil Project 学习系列----- 进阶
  18. 支持向量机原理与实现
  19. Linux鼠标断断续续,鼠标断断续续失灵该怎么办
  20. [深度学习概念]·非极大值抑制解析

热门文章

  1. 云说的到底对不对,京东到底行不行?
  2. 使用while和FOR循环分布打印字符串S='asdfer' 中的每一个元素
  3. golang基础01
  4. 注册验证的时候一直出现的报错问题,终于解决了
  5. 15个Java多线程面试题
  6. jvm fastdebug
  7. html5 的百度地图连接
  8. Linux下查看文件和文件夹大小的df和du命令(链接)
  9. CSS布局教程:用DIV CSS实现国内经典式三行两列布局-CSS布局实例
  10. C# 视频监控系列(11):H264播放器——封装API[HikPlayM4.dll]