• 1120. Maximum Average Subtree 子树平均值的最大值


    Given the root of a binary tree, return the maximum average value of a subtree of that tree. Answers within 10-5 of the actual answer will be accepted.

    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: root = [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.
    

    Example 2:

    Input: root = [0,null,1]
    Output: 1.00000

    还是dc的模板,但是

    是从这里递归出去的,所以可以用+1来计算子节点的数量
    int number = left + right + 1;

    https://leetcode.com/problems/maximum-average-subtree/discuss/715694/Java-0ms-simple

    class Solution {
        private double average = 0;
        public double maximumAverageSubtree(TreeNode root) {
            helper(root);
            return average;
        }
        
        private int helper(TreeNode root){
            if(root == null)
                return 0;
            int left = helper(root.left);
            int right = helper(root.right);
            int number = left + right + 1;
            if(left != 0)
                root.val += root.left.val;
            if(right != 0)
                root.val += root.right.val;
            average = Math.max(average, (double)(root.val) / number);
            return number;
        }
    }
     
  • 相关阅读:
    积性函数前缀和
    CF1067D Computer Game
    Atcoder Tenka1 Programmer Contest 2019 题解
    Codeforces Round #549 (Div. 1) 题解
    SHOI2019旅游记
    CF871D Paths
    CF1065E Side Transmutations
    停更公告
    博客说明
    SCOI2019酱油记
  • 原文地址:https://www.cnblogs.com/immiao0319/p/15201690.html
Copyright © 2020-2023  润新知