摘要: 给定一个按 非递减顺序 排列的数字数组 digits 。你可以用任意次数 digits[i] 来写的数字。 例如,如果 digits = ['1','3','5'],我们可以写数字,如 '13', '551', 和 '1351315'。 返回 可以生成的小于或等于给定整数 n 的正整数的个数 ### 阅读全文
posted @ 2023-06-07 22:28 失控D大白兔 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 给定一个正整数 n ,请你统计在 [0, n] 范围的非负整数中,有多少个整数的二进制表示中不存在连续的 1 。 ####1. 数位dp ``` class Solution { public: int findIntegers(int n) { int m= __lg(n); //转字符串逐位递归 阅读全文
posted @ 2023-06-07 04:50 失控D大白兔 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 ####一. 数位dp ``` class Solution { public: int countDigitOne(int n) { auto s = to_string(n); //转字符串逐位递归分析 int m = 阅读全文
posted @ 2023-06-07 04:04 失控D大白兔 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 给定正整数 n,返回在 [1, n] 范围内具有 至少 1 位 重复数字的正整数的个数。 ####一. 数位dp + 逆向思维 首先将问题转化为不含重复数字的个数 定义f(i,mask,islimit,isnum) 表示构造第i位及之后数位的合法方案数 mask 表示前面数的状态,用于判断枚举数是否 阅读全文
posted @ 2023-06-07 03:40 失控D大白兔 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 给你两个数字字符串 num1 和 num2 ,以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件,我们称它是一个好整数: * num1 f = [&](int i, int sum, bool is_limit) -> int { if (sum > max_sum) 阅读全文
posted @ 2023-06-07 00:39 失控D大白兔 阅读(23) 评论(0) 推荐(0) 编辑