LeetCode 357. Count Numbers with Unique Digits 解题报告
来源:互联网 发布:java小游戏源代码文件 编辑:程序博客网 时间:2024/06/03 17:58
LeetCode 357. Count Numbers with Unique Digits 解题报告
题目描述
Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n.
示例
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]) 。
限制条件
没有明确给出。
解题思路
我的思路:
这道题其实就是一道数学题。
考虑一位数的情况,有10个,分别是0-9。
考虑两位数的情况,十位上只能从1-9中选择,个位上是从0-9中不同于十位数的剩下9个数中选择:
考虑三位数的情况,百位上有9种选择,十位有9种(除去百位上的数),个位有8种(除去百位跟十位的数):
如此类推:对于n位的数,第n位有9种选择,第n-i位有9-i种选择。
所以当n=2时,就是把一位数跟两位数的结果相加:
按照这种思路,直接用代码实现出来即可。需要注意的是,当n>10时,结果是等同于n=10,在代码里i = 10时,multi *= (10 - i) =0实现了n>10后,结果等于n=10的效果。
这种解法是很简单的了,通过后看了其它人解法,大体都是这样完成的,还有大牛用回溯法做的,但是没有理解就在这里不给出了(^__^) 嘻嘻……请不要打我。
代码
我的代码
class Solution {public: int countNumbersWithUniqueDigits(int n) { int unique = 10; int multi = 9; for (int i = 1; i < n; i++) { multi *= (10-i); unique += multi; } return !n ? 1: unique; }};
总结
这道题考的是基本的数理能力,只要在做的时候能够想到用0-9填n位是通过
国庆前一天填的坑,明天加油~国庆假期也会保持填坑的,O(∩_∩)O。
- [leetcode] 357. Count Numbers with Unique Digits 解题报告
- leetcode 357. Count Numbers with Unique Digits 解题报告
- LeetCode 357. Count Numbers with Unique Digits 解题报告
- LeetCode解题报告 357. Count Numbers with Unique Digits [medium]
- [Leetcode] 357. Count Numbers with Unique Digits 解题报告
- 357. Count Numbers with Unique Digits解题报告
- Leetcode 357. Count Numbers with Unique Digits 统计没有重复数字的数 解题报告
- 【LeetCode】357. Count Numbers with Unique Digits
- LeetCode 357. Count Numbers with Unique Digits
- [leetcode] 357. Count Numbers with Unique Digits
- 【LeetCode】357. Count Numbers with Unique Digits
- leetcode 357. Count Numbers with Unique Digits
- leetcode 357. Count Numbers with Unique Digits
- leetcode.357. Count Numbers with Unique Digits
- LeetCode:357. Count Numbers with Unique Digits
- 【leetcode】357. Count Numbers with Unique Digits
- [leetcode] 357. Count Numbers with Unique Digits
- 357.[LeetCode]Count Numbers with Unique Digits
- Android中的layout_gravity与gravity属性
- Linux C 的进程调度
- STM32通过I2C与BMP280通信
- Ubuntu 下 使用 adb logcat 显示 Android 日志
- task标准字段
- LeetCode 357. Count Numbers with Unique Digits 解题报告
- jquery 通过动态id name等获取标签
- win7电脑删除文件速度很慢怎么办?
- Android Linker 与 SO 加壳技术
- STM32F207ZG型号gpio配置
- html元素居中
- 数据结构(一)——顺序表(C语言实现)
- JAVA异常
- webstrom 配置coffeescript开发环境