数位DP模板

# i: 第i位到最后一位的dp状态……
# mask: 可选择的数字……
# isLimit: 是否限制该位大小,如果没有,那么可以选择0-9,否则需要计算上界s[0] - 'i'
# isNum: 前面是否选择过数字
def f(i, mask, isLimit, isNum):if i == m: return isNum    # 最后一位if !isLimit and isNum and dp[i][mask]: return dp[i][mask]res = 0up = isLimit ? s[i] - '0' : 9for digit in range(1 - int(isNum), up + 1):if (mask >> digit & 1) == 0:res += f(i + 1, mask | 1 << digit, isLimit and digit == up, True)if !isLimit and isNum: dp[i][mask] = resreturn res

可以解决的问题:

902. 最大为 N 的数字组合 - 力扣(LeetCode)

2376. 统计特殊整数 - 力扣(LeetCode)

233. 数字 1 的个数 - 力扣(LeetCode)

面试题 17.06. 2出现的次数 - 力扣(LeetCode)

600. 不含连续1的非负整数 - 力扣(LeetCode)

1012. 至少有 1 位重复的数字 - 力扣(LeetCode)

365天挑战LeetCode1000题——Day 117 数位DP II相关推荐

  1. 365天挑战LeetCode1000题——Day 117 数位DP I

    902. 最大为 N 的数字组合 代码实现 class Solution {private:int solve(stack<int>& st, vector<int>& ...

  2. 365天挑战LeetCode1000题——Day 117 矩形区域不超过 K 的最大数值和

    363. 矩形区域不超过 K 的最大数值和 代码实现 class Solution {public:int maxSumSubmatrix(vector<vector<int>> ...

  3. 365天挑战LeetCode1000题——Day 126 单调栈模板 500题纪念

    用时126天,完成500题,平均4题/天,照这个速率,我还需要四个月完成1000题挑战. 单调栈模板 class Solution {public:vector<int> nextGrea ...

  4. 365天挑战LeetCode1000题——Day 260 800题

    时过但境还没迁,一晃眼过去了4个月,在同样的位置发了博客. 今天完成了第八百道题,然后距离我的365天千题计划,还剩下100天左右,每天再保持两题的刷题量,就能完成我一年前定下的目标了.这也再次证明了 ...

  5. 365天挑战LeetCode1000题——Day 014 每日一题 + 最长公共子序列

    文章目录 1. [我能赢吗](https://leetcode.cn/problems/can-i-win/) 1.1 记忆化搜索+DFS+位运算 2. [最长公共子序列](https://leetc ...

  6. 365天挑战LeetCode1000题——Day 012 每日一题

    文章目录 前言 1. [寻找右区间](https://leetcode.cn/problems/find-right-interval/) 1.1 二分查找 总结 前言 今天还是一题,但是重新学习了快 ...

  7. 365天挑战LeetCode1000题——Day 103 400题 检查二进制字符串字段 最大子序列交替和 最低票价 K 站中转内最便宜的航班

    400题,用时103天,平均3.88题/天,预计154天,也就是5个月后完成目标 1784. 检查二进制字符串字段 代码实现(模拟) class Solution {public:bool check ...

  8. 365天挑战LeetCode1000题——Day 124 单调队列模板

    单调队列模板 class MaxQueue {private:queue<int> origin;deque<int> dq; public:MaxQueue() {}int ...

  9. 365天挑战LeetCode1000题——Day 154 Knight

    154天,12次竞赛,573道题目,拿到了knight. 算是到了新的一个阶段吧,正好接下来四周应该都打不了了,因为周末有实验课. 每日一题 class Solution {public:int nu ...

最新文章

  1. ArrayList使用方法
  2. oracle11g注册在哪里,oracle 如何新建账号密码在suse11,oracle11g和tomcat开机自启动...
  3. 【NOIP】提高组2012 同余方程
  4. P2619 [国家集训队2]Tree I
  5. VS Code (visual studio code) VSC 编辑器(微软出品,js开发的编辑器)
  6. CSS3之图片3D翻转效果(网页效果--每日一更)
  7. 深度学习推荐模型-DIN
  8. Ubuntu联网图标消失
  9. Dreammaker水疗流行的Eclipse从他们的加州系列,审议
  10. 视觉SLAM十四讲从理论到实践第二版源码调试笔记(理论基础1-6章)
  11. Docker深入浅出系列 | 容器初体验
  12. 51单片机点亮LED灯以及实现2盏LED灯的交替闪烁
  13. 将实时三维计算机技术,基于结构光实时三维重建计算机应用技术专业论文.docx...
  14. JAVA 实现《捕鱼达人》游戏
  15. Springboot连接mysql数据库(jdbcTemplate)
  16. Linux小白的大师之路
  17. Android之SharedPreferences使用
  18. 人工智能 2. 图像识别
  19. python提取一行_如何从numpy数组中提取任意一行值?
  20. 2021-06-29 MySql(未完待续)

热门文章

  1. Jolla 超额完成开源平板电脑众筹
  2. 脑残世界历险记(短篇科幻恶搞)——第一问 脑残是从来就有的吗?
  3. 查询电话号码归属地的PHP接口(处理过可供前端使用的)
  4. 哪款软件可以测试刘海,测试自己适合什么刘海 按照脸型来选一测便知
  5. [2018 NUIST 程序设计竞赛] A. 竹鼠的命运
  6. 解决VM 15.5.5ubuntu虚拟机键盘失灵、大小写失灵、caps lock失灵问题
  7. 生产者消费者模式Java实现
  8. 嵌入式学习笔记(1)-Ubuntu基本操作及软件安装
  9. Android仿抖音APP
  10. linux给文件夹及子文件(夹)授权