入门House Robber

本文通过Top-Down角度深入解析HouseRobber问题,探讨DP特性中的overlap subproblems及optimalsubstructure,阐述如何通过递归定义maxProfit(n),并进行空间优化。
摘要由CSDN通过智能技术生成

House Robber

(1) 先从 Top-Down 的角度来想,如果我们定义 maxProfit(n) 为长度为 n 的 array 中所能得到的最大利益的话,不难看出在计算 maxProfit(n) 的时候,它的值和前两个 subproblem 相关,即 maxProfit(n - 1) 和 maxProfit(n - 2).  关键是找到这个!!

由此我们发现了 DP 的第一个性质: overlap subproblems.(即states)

(2)optimal substructure相当于transition function。同时如果 maxProfit(n - 1) 和 maxProfit(n - 2) 都是其对应子问题的最优解的话,我们可以只利用这两个子问题的 solution,加上对当前元素的判断,构造出 maxProfit(n) 的最优解。

因此我们满足了 DP 的正确性性质: optimal substructure. (即states之间的关联)
(3) 空间的优化: index % n
因为每一个 size = index 的问题只和前面的 n 个子问题相关,只用存储n个状态即可。
(4) 为什么要有初始定义?因为不满足递推公式,带入会出现溢出


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值