Add Go into 337.打家劫舍III.md

This commit is contained in:
Henry Du
2021-10-12 18:27:06 -07:00
parent 7bb935cfaa
commit b64e34815d

View File

@ -368,6 +368,41 @@ class Solution:
return (val1, val2)
```
Go:
> 动态规划
```go
func rob(root *TreeNode) int {
res := robTree(root)
return max(res[0], res[1])
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func robTree(cur *TreeNode) []int {
if cur == nil {
return []int{0, 0}
}
// 后序遍历
left := robTree(cur.Left)
right := robTree(cur.Right)
// 考虑去偷当前的屋子
robCur := cur.Val + left[0] + right[0]
// 考虑不去偷当前的屋子
notRobCur := max(left[0], left[1]) + max(right[0], right[1])
// 注意顺序0:不偷1:去偷
return []int{notRobCur, robCur}
}
```
JavaScript
> 动态规划