From 47e6ccd958e5d9e83a474fd2763e243311d2f516 Mon Sep 17 00:00:00 2001 From: terminaldweller Date: Sun, 11 Dec 2022 10:48:28 +0330 Subject: 124 --- 124/go.mod | 3 +++ 124/main.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 124/go.mod create mode 100644 124/main.go diff --git a/124/go.mod b/124/go.mod new file mode 100644 index 0000000..355f7d1 --- /dev/null +++ b/124/go.mod @@ -0,0 +1,3 @@ +module 124 + +go 1.19 diff --git a/124/main.go b/124/main.go new file mode 100644 index 0000000..fa953f1 --- /dev/null +++ b/124/main.go @@ -0,0 +1,44 @@ +package main + +import ( + "fmt" + "math" +) + +type TreeNode struct { + Val int + Left *TreeNode + Right *TreeNode +} + +func max(a, b int) int { + if a > b { + return a + } else { + return b + } +} + +func walk(node *TreeNode, sum *int) int { + if node == nil { + return 0 + } + + left := max(0, walk(node.Left, sum)) + right := max(0, walk(node.Right, sum)) + *sum = max(*sum, left+right+node.Val) + + return max(left, right) + node.Val +} + +func maxPathSum(root *TreeNode) int { + sum := math.MinInt + + walk(root, &sum) + + return sum +} + +func main() { + fmt.Println("vim-go") +} -- cgit v1.2.3