File tree Expand file tree Collapse file tree 3 files changed +53
-3
lines changed Expand file tree Collapse file tree 3 files changed +53
-3
lines changed Original file line number Diff line number Diff line change
1
+ package er_cha_shu_ran_se_ugc
2
+ func MaxValue (root * TreeNode , k int ) int {
3
+ return maxValue (root ,k )
4
+ }
Original file line number Diff line number Diff line change
1
+ package er_cha_shu_ran_se_ugc
2
+
3
+ import (
4
+ "math"
5
+
6
+ sadbt "github.com/masx200/leetcode-test/serialize-and-deserialize-binary-tree"
7
+ )
8
+
9
+ type TreeNode = sadbt.TreeNode
10
+
11
+ func maxValue (root * TreeNode , k int ) int {
12
+ return Max (dfs (root , k )... )
13
+ }
14
+
15
+ func dfs (root * TreeNode , k int ) []int {
16
+ ans := make ([]int , k + 1 )
17
+ if root == nil {
18
+ return ans
19
+ }
20
+
21
+ left := dfs (root .Left , k )
22
+ right := dfs (root .Right , k )
23
+ for i := range ans {
24
+ ans [i ] = left [k ] + right [k ]
25
+ }
26
+
27
+ for i := 1 ; i <= k ; i ++ {
28
+ temp := math .MinInt
29
+ for j := 0 ; j <= i - 1 ; j ++ {
30
+ temp = Max (temp , left [j ]+ right [i - 1 - j ])
31
+ }
32
+ ans [i ] = Max (ans [i ], temp + root .Val )
33
+ }
34
+ return ans
35
+ }
36
+ func Max (values ... int ) int {
37
+
38
+ value := math .MinInt
39
+
40
+ for _ , v := range values {
41
+ if value < v {
42
+ value = v
43
+ }
44
+ }
45
+ return value
46
+ }
Original file line number Diff line number Diff line change 1
1
import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts" ;
2
- function maxValue ( root : TreeNode | null , k : number ) {
2
+ function maxValue ( root : TreeNode | null , k : number ) : number {
3
3
return Math . max ( ...dfs ( root , k ) ) ;
4
4
}
5
- function dfs ( root : TreeNode | null , k : number ) {
6
- const ans = Array ( k + 1 ) . fill ( 0 ) ;
5
+ function dfs ( root : TreeNode | null , k : number ) : number [ ] {
6
+ const ans = Array < number > ( k + 1 ) . fill ( 0 ) ;
7
7
if ( ! root ) return ans ;
8
8
9
9
const left = dfs ( root . left , k ) ;
You can’t perform that action at this time.
0 commit comments