add new solutions
This commit is contained in:
parent
9c2c959a9b
commit
9a10695e8c
29 changed files with 1074 additions and 2 deletions
43
solutions/11/q1161/solution.go
Normal file
43
solutions/11/q1161/solution.go
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
package q1161
|
||||
|
||||
import "math"
|
||||
|
||||
type TreeNode struct {
|
||||
Val int
|
||||
Left *TreeNode
|
||||
Right *TreeNode
|
||||
}
|
||||
|
||||
func maxLevelSum(root *TreeNode) int {
|
||||
type qElem struct {
|
||||
node *TreeNode
|
||||
level int
|
||||
}
|
||||
queue := make([]qElem, 0, 256)
|
||||
queue = append(queue, qElem{root, 1})
|
||||
|
||||
maxSum, maxLvl := math.MinInt, 0
|
||||
sum, lvl := 0, 1
|
||||
for ; len(queue) > 0; queue = queue[1:] {
|
||||
cur := &queue[0]
|
||||
if cur.level != lvl {
|
||||
if sum > maxSum {
|
||||
maxSum, maxLvl = sum, lvl
|
||||
}
|
||||
sum, lvl = 0, cur.level
|
||||
}
|
||||
sum += cur.node.Val
|
||||
if cur.node.Left != nil {
|
||||
queue = append(queue, qElem{cur.node.Left, cur.level + 1})
|
||||
}
|
||||
if cur.node.Right != nil {
|
||||
queue = append(queue, qElem{cur.node.Right, cur.level + 1})
|
||||
}
|
||||
}
|
||||
if sum > maxSum {
|
||||
return lvl
|
||||
}
|
||||
return maxLvl
|
||||
}
|
||||
|
||||
var _ = maxLevelSum
|
||||
Loading…
Add table
Add a link
Reference in a new issue