902. 最大为 N 的数字组合
# 902. 最大为 N 的数字组合
给定一个按 非递减顺序 排列的数字数组 digits 。你可以用任意次数 digits [i] 来写的数字。例如,如果 digits = [‘1’,‘3’,‘5’],我们可以写数字,如 ‘13’, ‘551’, 和 ‘1351315’。
返回 可以生成的小于或等于给定整数 n 的正整数的个数 。
示例 1:
输入:digits = ["1","3","5","7"], n = 100 |
示例 2:
输入:digits = ["1","4","9"], n = 1000000000 |
示例 3:
输入:digits = ["7"], n = 8 |
提示:
- 1 <= digits.length <= 9
- digits[i].length == 1
- digits [i] 是从 ‘1’ 到 ‘9’ 的数
- digits 中的所有值都 不同
- digits 按 非递减顺序 排列
- 1 <= n <= $10^9$
# 题解
数位 DP
class Solution { |
复杂度分析:
- 时间复杂度:$O (klogn)$
- 空间复杂度:$O (logn)$
Invitation
x-17
202111170521
created:2021/11/17
Welcome to X
月缺不改光,剑折不改钢
共矜然诺心,各负纵横志
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 潇十七!
评论