add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent 9c2c959a9b
commit 9a10695e8c
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
29 changed files with 1074 additions and 2 deletions

View 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