update dp
This commit is contained in:
@@ -8,7 +8,7 @@ DP通常基于一个递推公式及一个(或多个)初始状态,当前子问
|
||||
动态规划算法的关键在于解决冗余,以空间换时间的技术,需要存储过程中的各种状态。可以看着是`分治算法`+`解决冗余`
|
||||
|
||||
|
||||
动态规划算法也可以说是 `记住求过的解来节省时间`
|
||||
动态规划算法也可以说是 `记住求过的解来节省时间` ; 比如 Fibonacci数列 中,先直接从最小,最简单的 f(1) , f(2) 开始,自低向上一直到 f(20) , 这就是动态规划的思路
|
||||
|
||||
【初始状态】→【决策1】→【决策2】→…→【决策n】→【结束状态】
|
||||
|
||||
@@ -21,16 +21,20 @@ DP通常基于一个递推公式及一个(或多个)初始状态,当前子问
|
||||
|
||||
动态规划的核心思想就是穷举求最值; 动态规划问题的一般形式就是`求最值`,动态规划其实是运筹学的一种最优化方法,只不过在计算机问题上应用比较多,比如说:
|
||||
|
||||
* 最长递增子序列 (LIS Longest Increasing Subsequence)
|
||||
* 最小编辑距离
|
||||
* 0-1 背包问题
|
||||
* 凑零钱问题
|
||||
* 股票问题
|
||||
* 接雨水问题
|
||||
* Fibonacci数列
|
||||
* Fibonacci数列 [代码参考这里 递归](./递归.md)
|
||||
* 凑零钱问题
|
||||
* 股票问题 [代码参考这里](https://github.com/nonstriater/deep-in-java/blob/master/src/main/java/com/nonstriater/deepinjava/algo/list/stock/BestChance.java)
|
||||
* 二叉树的最近公共祖先 [代码参考这里](https://github.com/nonstriater/deep-in-java/blob/master/src/main/java/com/nonstriater/deepinjava/algo/tree/CommonParent.java)
|
||||
* 链表翻转 [代码参考这里](https://github.com/nonstriater/deep-in-java/blob/master/src/main/java/com/nonstriater/deepinjava/algo/link/ReverseLink.java)
|
||||
* 接雨水问题
|
||||
* 青蛙跳阶问题: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 10 级的台阶总共有多少种跳法。
|
||||
* 二叉树的最近公共祖先
|
||||
* 链表翻转
|
||||
* 最小编辑距离
|
||||
* 最长递增子序列 (LIS Longest Increasing Subsequence)
|
||||
* 0-1 背包问题
|
||||
|
||||
|
||||
|
||||
[更多动态规划案例代码实现参考deep-in-java])(https://github.com/nonstriater/deep-in-java/tree/master/src/main/java/com/nonstriater/deepinjava/algo/framework/dynamic)
|
||||
|
||||
|
||||
```
|
||||
@@ -69,7 +73,7 @@ DP 和 回溯法 都会用到递归
|
||||
|
||||
* 划分问题
|
||||
* 状态
|
||||
* 状态转移方程, 这一步最为困难
|
||||
* 状态转移方程, 这一步最为困难 ; 暴力解法就是状态转移方程
|
||||
* 状态压缩
|
||||
|
||||
|
||||
@@ -87,6 +91,23 @@ for 状态1 in 状态1的所有取值:
|
||||
|
||||
|
||||
|
||||
## 凑零钱问题
|
||||
|
||||
凑零钱问题[视频解读参考这里]()
|
||||
|
||||
如果使用贪心策略,并不能得到最优解。
|
||||
|
||||
|
||||
|
||||
```Java
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user