198.house robber中分解子问题的问题

来源:9-4 状态的定义和状态转移 House Robber

厦门黄猫编程

2020-11-09

老师好!
198.house robber中,你讲原问题是考虑偷0->n-1,我用f[0]表示,子问题如下分解:
考虑偷0+f[2…n-1]
考虑偷1+f[3…n-1]
考虑偷2+f[4…n-1]

f[n-1]
我觉得到考虑,偷2+f[4…n-1]这时候为什么这个子问题,不回头考虑要偷0,max(偷2+f[4…n-1],偷0+偷2+f[4…n-1])后面才是最大值啊。

写回答

1回答

liuyubobobo

2020-11-09

因为 偷2+f[4…n-1] 就是 f[2] 呀。f[2] 表示考虑偷 [2...n-1],自然包括 偷 2, 然后继续考虑偷 [4...n-1]


所以,你的 偷0+偷2+f[4…n-1] 在计算 偷0+f[2…n-1] 的时候,已经包含了:)


继续加油!:)

3
3
厦门黄猫编程
回复
liuyubobobo
谢谢老师,您回复很快,很负责!!
2020-11-10
共3条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7410 学习 · 1150 问题

查看课程