动态规划(准备工作)

动态规划

动态规划概念:

英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的

动态规划五部曲

1,确定dp数组(dp table)以及下标的含义
2,确定递推公式
3,dp数组如何初始化
4,确定遍历顺序
5,举例推导dp数组
万事开头皆不易,首先弄清楚问题是什么?要解决什么问题,其实许多都可以从一个问题抽象到另外一个问题。根据量化规则,可以将dp递推公式归为背包之类一样的问题。及其只少的部分是遍历顺序影响的,抓住事物的本质,然后进行抽象求出事物的基本特征。

动态规划刷题顺序

基础题:leetcode509 70 746 62 63 343 96
背包问题
01背包理论基础
01背包理论基础(滚动数组)
0416.分割等和子集
1049.最后一块石头的重量Il
0494.目标和
0474.一和零
完全背包问题:
完全背包理论基础
0518.零钱兑换Il
0377.组合总和IV
0070.爬楼梯(完全背包解法)
0322.零钱兑换
0279.完全平方数
0139.单词拆分
背包问题大总结
打家劫舍问题:
198.打家劫舍
213.打家劫舍Il
337.打家劫舍Ⅲ
股票问题
121.买卖股票的最佳时机(只能买卖一次)
122.买卖股票的最佳时机Il(可以买卖多次)
123.买卖股票的最佳时机II(最多买卖两次)
188.买卖股票的最佳时机IⅣ(最多买卖k次)
309.最佳买卖股票时机含冷冻期(买卖多次,卖出有一天冷冻期)
714.买卖股票的最佳时机含手续费(买卖多次,每次有手续费)
子序列问题

子序列(不连续)
300.最长上升子序列
1143.最长公共子序列
1035.不相交的线
子序列(连续)
674.最长连续递增序列
718.最长重复子数组
53.最大子序和
编辑距离
392.判断子序列
115.不同的子序列
583.两个字符串的删除操作
72编辑距离
回文
516.最长回文子序列
647.回文子串

动态规划常备debug

动态规化本就是牺牲空间换时间,穷举加最值成为了一个显著特征。我们写的dp数组,如何找dp数组的定义,dp数组的情况对于基础薄弱的人来说,完全就是一个黑盒。这里用上了几行打印dp数组的代码。

//打印一维dp数组
for (int i = 1; i <= n; i++){
        System.out.println("dp" + "[" + i + "]" + " = " + dp[i]);
}
//打印二维dp数组
for (int i = 0; i < m; i++){
            for (int j = 0; j < n; j++){
                 System.out.print("dp" + "[" + i + "]" + "[" + j + "]" + " = " + dp[i][j] + "      ");
            }
 System.out.println();
        }

如何从一个新手变成一个入门级别的。有很重要的一点就是善于思考。从技术大牛上的肩膀上看待问题,掌握他们说的所有有关于经验之类的。快速吸收接纳它,并进行自己的一些思考扩展,擅长去匹配信息是一个重要的能力。
源自Carl哥的灵魂三问:
这道题目我举例推导状态转移公式了么?
我打印dp数组的日志了么?
打印出来了dp数组和我想的一样么?

最后

这篇博客就不去写一些题解了,leetcode上都有优秀的题解去说明,把这个抽象化的思维总结出来一套行之有效的方法出来,解决一些问题,希望能启发到后发之人。
这里是以前的人总结出来的背包问题,挺有深度的,上链接:https://pan.baidu.com/s/1FD47tDQCNWvvBBnXtGwheA
提取码:jsqr
这段时间,被学习折磨的,头疼欲裂,极度缺乏灵感。生活需要灵感,每天用点时间听听音乐,看看美女和美景,晚饭后,散散步放松放松一下,多元化的生活比一线的学习有意思多了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值