[leetcode-357-Count Numbers with Unique Digits]
Posted hellowOOOrld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode-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]
)
思路:
思路:
排列组合题。
设i为长度为i的各个位置上数字互不相同的数。
- i==1 : 1 0(0~9共10个数,均不重复)
- i==2: 9 * 9 (第一个位置上除0外有9种选择,第2个位置上除第一个已经选择的数,还包括数字0,也有9种选择)
- i ==3: 9* 9 * 8 (前面两个位置同i==2,第三个位置除前两个位置已经选择的数还有8个数可以用)
- ……
- i== n: 9 * 9 * 8 *…… (9-i+2)
需要注意的是,9- i + 2 >0 即 i < 11,也就是i最大为10,正好把每个数都用了一遍。
参考自:https://www.hrwhisper.me/leetcode-count-numbers-unique-digits/
int countNumbersWithUniqueDigits(int n) { if (n == 0)return 1; if (n == 1)return 10; vector<int>dp(n+1,9); n = min(n,10); int cnt = 10; for (int i = 2; i <= n;i++) { int j = 11 - i; dp[i] = dp[i - 1] * j; cnt += dp[i]; } return cnt; }
以上是关于[leetcode-357-Count Numbers with Unique Digits]的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 357. Count Numbers with Unique Digits
leetCode 357. Count Numbers with Unique Digits | Dynamic Programming | Medium
sqlserver2005如何把row_numbe函数的值赋值给某一列
csharp Unity3d的简单相机抖动效果,用C#编写。附加到您的相机GameObject。要摇动相机,请将shakeDuration设置为numbe
Sizes of tensors must match except in dimension 1. Expected size 24 but got size 25 for tensor numbe
创建一个名为stu_insert的触发器,当向学生表student中插入记录时,自动更新班级表class中的学生人数numbe