动态规划Dynamic Programming
动态规划思路
选硬币问题
给你一堆硬币,你可以从中拿取任意多的。
但是拿了一个,就不能拿周围挨着的两个。
问,你能最多能拿到多少钱
20 10 20 50 20 10 20
注意
问题对比
你最多能拿到多少钱
你怎样才能拿到最多的钱
什么是动态规划
Dynamic Programming
傻子编程
动态规划思路
1. 找到一个切入点,看这个点可以有哪种可能
2. 分别检查 这些可能会不会将 原问题 变为 子问题
3. 查看这些答案 哪个最好

使用动态规划思路分析选硬币问题
20 10 20 50 20 10 20 S(coins, n) -> 前 n 个 硬币里 选,最高的价值 S(coins, 7) n-th coin max + o -> S(coins, n - 2) + coins_n + --/ + x -> S(coins, n - 1) + -/
时间复杂度分析