首页 > 其他 > 详细

1120. Maximum Average Subtree

时间:2021-03-13 15:48:11      阅读:30      评论:0      收藏:0      [点我收藏+]

Given the root of a binary tree, find the maximum average value of any subtree of that tree.

(A subtree of a tree is any node of that tree plus all its descendants. The average value of a tree is the sum of its values, divided by the number of nodes.)

 

Example 1:

技术分享图片

Input: [5,6,1]
Output: 6.00000
Explanation: 
For the node with value = 5 we have an average of (5 + 6 + 1) / 3 = 4.
For the node with value = 6 we have an average of 6 / 1 = 6.
For the node with value = 1 we have an average of 1 / 1 = 1.
So the answer is 6 which is the maximum.

 1 class Solution {
 2     double res = Integer.MIN_VALUE;
 3 
 4     public double maximumAverageSubtree(TreeNode root) {
 5         dfs(root);
 6         return res;
 7     }
 8 
 9     private int[] dfs(TreeNode root) {
10         if (root == null) {
11             return new int[] {0, 0};
12         }
13         int[] l = dfs(root.left), r = dfs(root.right);
14         int sum = l[0] + r[0] + root.val, count = l[1] + r[1] + 1;
15         res = Math.max(1.0 * sum / count, res);
16         return new int[] {sum, count};
17     }
18 }

 

1120. Maximum Average Subtree

原文:https://www.cnblogs.com/beiyeqingteng/p/14528519.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!