动态规划

数位DP

基础知识

位运算

2088. 统计农场中肥沃金字塔的数目

  • 二维转化为一维DP的时候,一定要注意递归过程中会不会覆盖此次递归需要的旧值
  • 这题第一次提交错误,就是因为当前更新时覆盖了旧值,但是之后的计算需要被覆盖的旧值;但是忘记了另外存储旧值导致的!!!
    • dp[i][j] = 1 + min(dp[i+1][j-1], dp[i+1][j], dp[i+1][j+1])
    • 再遇到这样的得注意

打家劫舍

Misc

  • 2708.一个小组的最大实力值
    • 维护两个状态:最小乘积,最大乘积
    • 状态更新:不选当前元素、当前元素单独乘积、当前元素为负时✖️最小 -> 最大乘积、当前元素为正时✖️最大 -> 最大乘积;当前元素为负时✖️最大 -> 最小乘积、当前元素为正时✖️最小 -> 最小乘积

记忆化-> 动规

3177. 求出最长好子序列 II

  • 容易想出记忆化搜索 -> 但是转化为动归有点难☹️
  • 下次遇到记忆化搜索的,都尝试翻译成动态规划试一试

利用动规预处理数据,为后续计算做准备

  • 2552. 统计上升四元组
    • 这题考虑遍历(j, k) -> 这里就么有想到
    • 创建二维数组mem -> 使用二维数组记录大小元素个数信息也没有想到
      • 有部分前缀和的思想在里面
    • 事先计算[x, y]范围里,比y小的元素数目 -> 记录到mem[x][y]
    • 计算[y, z]范围里,比y大的元素数目 -> 记录到mem[x][z]

股票问题大汇总


动态规划
http://example.com/2024/08/21/算法刷题/动态规划/
作者
Cyokeo
发布于
2024年8月21日
许可协议