day39 | 打家劫舍

三道小偷的题目。

基础的题目主要就是当前节点保存两个状态f偷与f不偷。

  • 不偷的话就是和前面偷情况下相等。
  • 偷的话就是max(前不偷+curval,前偷) 值得注意的就是 虽然当前状态是偷的,但不一定是真的偷了当前节点。

然后就是环形题目,分成两种情况考虑就可以

最后是树状dp 可以用后序遍历求解。 或者用BFS换成数组形式,然后逆推即可。

dp[parentId][0]= dp[2*parentId][1]+dp[2*parentId+1][1]+node[parentId].val
dp[parentId][1]= max(dp[2*parentId][0],...[1])+max(dp[2*parentId+1][0],...[1])

全部评论

相关推荐

牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
昨天 22:38
深圳技术大学 C++
牛客741287455号:别笑,可能是以前部门的大佬,被辞职了,送外面,头发都变多了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务