mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Add Go into 337.打家劫舍III.md
This commit is contained in:
@ -368,6 +368,41 @@ class Solution:
|
|||||||
return (val1, val2)
|
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:
|
JavaScript:
|
||||||
|
|
||||||
> 动态规划
|
> 动态规划
|
||||||
|
Reference in New Issue
Block a user