type
status
date
slug
summary
tags
category
icon
password
创建时间
Dec 16, 2024 02:02 AM
给你一个整数
n
,统计并返回各位数字都不同的数字 x
的个数,其中 0 <= x < 10n
。组合
针对不同位数的数字,分别统计。当
n = x
时,我们需要计算 0, 1, 2, …, x
不同位数的组合数量,然后将其加到答案上。我们发现在第二重循环中,每次计算都会包含之前的计算。
i = 3, tmp = 9 * 8 * 9
i = 2, tmp = 9 * 9
因此,我们可以不使用第二次循环。
其他写法
动态规划
dp[i]
数组表示 i
位的数字的方案数1 + 9 + 9 * 9 + 9 * 9 * 8 + 9 * 9 * 8 * 7 + ..
n = 0:1 种方案
n = 1:n = 0 + 长度为 1 的数字个数(9 个)= 1 + 9 = 10
n = 2:n = 1 + 长度为 2 的数字个数(9 * 9 个)= 10 + 9 * 9 = 81
n = 3:n = 2 + 长度为 3 的数字个数(9 * 9 * 8 个)= 81 + 9 * 9 * 8 = 739
n = 4:n = 3 + 长度为 4 的数字个数(9 * 9 * 8 * 7 个)= 10 + 9 * 9 * 8 * 7 = 5275
📎 参考
- 无