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])

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务