算法
panrock
这个作者很懒,什么都没留下…
展开
-
打家劫舍II
打家劫舍II 房屋围成一圈 相邻房间不可同时偷 【1,2,3,3,1】 可以先考虑2,不考虑1.问题就简化成了打家劫舍I。 我们先让房间不能围成一圈。舍弃掉0号位或者末号位。 分两种情况分别计算,然后取两者结果的大者。 把一个大问题,拆分成了两个简单的子问题。然后通过两个子问题的解得出大问题的解。 房屋的排列成一个圆。遇到圆的问题可以考虑一下打家劫舍II的解法。去掉一个头去掉一个尾就转变成了两个直线问题。 打家劫舍III 在树形结构的递推中,初始确定的null节点的...原创 2021-05-18 17:09:55 · 100 阅读 · 0 评论 -
动态规划-基本思想
一.动态规划三要素 最优子结构 全局最优解一定包含子问题的最优解。 递推公式(状态转移方程) 比较大的问题一定可以通过它前面的比较小的一个或几个问题推导出来。比如在打家劫舍的问题中,3号位置的解取决于1号和2号位置的解。(3号位置的解可以由1号和2号位置的最优解推导出来)。偷前三家能偷到的最大金额f(3),等于什么呢。就两种可能,要么,①我偷第三家,那么我不能偷第二家,即现在能偷到的最大金额为,f(1)-偷前一家的最优解 + 偷第三家的金额数。(由于小偷不能偷连续的两家,所以在①这种情况中,打算原创 2021-05-18 17:06:16 · 326 阅读 · 0 评论