Skip to content

Latest commit

 

History

History
54 lines (29 loc) · 2.2 KB

坐标型动态规划.md

File metadata and controls

54 lines (29 loc) · 2.2 KB

坐标型动态规划

  • 坐标记录状态
  • 可以用滚动数组进行空间优化

题目

一维坐标

硬币组合: 足够的2,5,7面值的硬币,问最少用多少个硬币能组合出面值27(有多少种方式凑出面值27)

f(i) 表示凑出i元所有的最少硬币数(凑出i元的方案数)

二维坐标

不同路径:在一个二维棋盘中,机器人从左上角走到右下角,有多少种走法

炸弹袭击

二维矩阵中的格子为空,敌人,墙,炸弹可以放在任意空地上,炸弹会杀死同一行和同一列没有墙阻隔的敌人;问一个炸弹杀死的最大敌人数

算法思路:

  • 记录dp[i][j][0,1,2,3]分别为向四个方向能炸死的敌人数目
  • 从四个方向,做差分,记录每个位置在此方向上能够炸死的敌人数目
  • 四个方向求和,迭代得最大值

最长序列(属于坐标型动态规划)

最长上升子序列(LIS)(力扣300)一维坐标

最长公共子序列(LCS)(力扣1143)二维坐标

图形问题

根据棋盘中图形的性质,通过相邻坐标的状态,进行推导

矩形统计