zoukankan      html  css  js  c++  java
  • [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;
        }
    }
  • 相关阅读:
    mac os 基本命令
    一个程序员的郁闷吐槽
    域名那些事儿
    EventEmitter事件派发器
    Array类型的操作方法
    居中与垂直居中
    Web Storage —— 登录时记住密码
    字符串字符统计
    颜色字符串转换(正则)
    将字符串转换为驼峰格式
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12419352.html
Copyright © 2011-2022 走看看