概念部分:
动态规划可以看做一种递归的优化,可以通过记忆减少不必要的重复计算。
动态规划的解题思路:
1:递归+记忆:自顶向下
2:动态规划:自底向上
解法步骤:
1:根据重叠问题定义状态
2:寻找最优子结构,推导状态转移方程
3:确定DP初始状态
4:确定返回值
算法部分:
一:斐波那契相关:
package main
import (
"fmt"
)func main() {
//斐波那契数列 : f(0) = 0; f(1) = 1; f(n) = f(n-1) + f(n-2)//暴力递归:自顶向下