[Leetcode] 357. Count Numbers with Unique Digits 解题报告
来源:互联网 发布:js中bind 编辑:程序博客网 时间:2024/06/14 20:30
题目:
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或者n = 1的时候都是平凡情况,可以直接返回;而当n == 11的时候,根据鸽笼原理,必然不存在符合题目要求的数。那么当 2 <= n <= 10的时候呢?可以知道对于位数为n的数字,最高位可以是1-9的任意一个数字,之后各位可以选择的个数依次为9,8,7...。因此可以写出如下空间复杂度为O(1),时间复杂度为O(min(n, 10))的算法。
代码:
class Solution {public: int countNumbersWithUniqueDigits(int n) { if(n == 0) { return 1; } else if(n == 1) { return 10; } int ret = 10, f = 9; for(int i = 2; i <= min(n, 10); ++i) { f *= (11 - i); ret += f; } return ret; }};
阅读全文
0 0
- [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
- 零基础学习嵌入式:嵌入式linux视频教程免费分享
- C++读取文件夹内文件,返回文件路径
- Java类加载机制详解
- 抽象类与抽象方法
- bzoj 3016: [Usaco2012 Nov]Clumsy Cows 栈
- [Leetcode] 357. Count Numbers with Unique Digits 解题报告
- webpack总结 & 个人理解
- Java 基础知识笔记
- ROS学习(2)--ROS项目试炼
- C. Star sky【前缀和预处理】
- .NET webconfig 配置地址
- 04-WIFI通讯服务端搭建
- Codeforce~545C
- TX2(1)--Jetson TX2 刷机并安装JetPack3.0