• [LintCode] 597. Subtree with Maximum Average


    Given a binary tree, find the subtree with maximum average. Return the root of the subtree.

    Example 1

    Input:
    {1,-5,11,1,2,4,-2}
    Output:11
    Explanation:
    The tree is look like this:
         1
       /   
     -5     11
     /    /  
    1   2 4    -2 
    The average of subtree of 11 is 4.3333, is the maximun.
    

    Example 2

    Input:
    {1,-5,11}
    Output:11
    Explanation:
         1
       /   
     -5     11
    The average of subtree of 1,-5,11 is 2.333,-5,11. So the subtree of 11 is the maximun.

    public class Solution {
        private class ResType {
            int sum;
            int size;
            public ResType(int sum, int size) {
                this.sum = sum;
                this.size = size;
            }
        }
        /**
         * @param root: the root of binary tree
         * @return: the root of the maximum average of subtree
         */
        TreeNode maxNode = null;
        ResType globalNode = null;
        public TreeNode findSubtree2(TreeNode root) {
            // write your code here
            helper(root);
            return maxNode;
        }
        
        private ResType helper(TreeNode root) {
            if (root == null) {
                return new ResType(0, 0);
            }
            ResType left = helper(root.left);
            ResType right = helper(root.right);
            int curSum = left.sum + right.sum + root.val;
            int curSize = left.size + right.size + 1;
            ResType cur = new ResType(curSum, curSize);
            if (maxNode == null || curSum * globalNode.size > curSize * globalNode.sum) {
                globalNode = cur;
                maxNode = root;
            }
            return cur;
        }
    }
  • 相关阅读:
    docker镜像
    docker常用命令
    docker基础
    跨站脚本漏洞(XSS)基础
    Session、Cookie与Token
    linux之curl工具
    ssl证书与java keytool工具
    mysql主从复制
    linux之平均负载(学习笔记非原创)
    mysql8.0忘记密码如何操作?
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12419352.html
Copyright © 2020-2023  润新知