Go语言动态规划经典问题与实现1. 斐波那契数列func fibonacci(n int) int { if n 1 { return n } dp : make([]int, n1) dp[0], dp[1] 0, 1 for i : 2; i n; i { dp[i] dp[i-1] dp[i-2] } return dp[n] }2. 背包问题func knapsack(weights, values []int, capacity int) int { n : len(weights) dp : make([][]int, n1) for i : range dp { dp[i] make([]int, capacity1) } for i : 1; i n; i { for w : 0; w capacity; w { if weights[i-1] w { dp[i][w] max(dp[i-1][w], dp[i-1][w-weights[i-1]]values[i-1]) } else { dp[i][w] dp[i-1][w] } } } return dp[n][capacity] }3. 总结动态规划是解决最优子结构问题的有效方法通过保存子问题结果避免重复计算。