目录
198. 打家劫舍
【题目】:
【方法1】:动态规划(比较好理解,重点掌握)
从后往前抢,抢到 i 时,dp[i] 的值等于 max{抢劫 i 号房子,不抢劫 i }。
- 抢劫 i ,i 后面最大利益为 dp[i-2]+nums[i]
- 不抢劫 i ,i 后面最大利益为 dp[i-1]
dp 方程 dp[i] = max(dp[i-2]+nums[i], dp[i-1])
效果:
【方法2】:记忆化搜索,思路同动态规划,只不过算出来一个抢到 i 的最大利益 memo[i] 就记录下来,下一次算的时候直接用。
memo[i]=max(nums[i]+tryRob(nums, i+2), tryRob(nums, i+1));
效果:
213. 打家劫舍 II
【题目】:
【代码】:
效果: