zoukankan      html  css  js  c++  java
  • Binary Tree Maximum Path Sum leetcode java

    题目

    Given a binary tree, find the maximum path sum.

    The path may start and end at any node in the tree.

    For example:
    Given the below binary tree,

           1
          / 
         2   3
    

    Return 6.

    题解

     递归求解。

     取当前点和左右边加和,当前点的值中最大的作为本层返回值。并在全局维护一个max。使用数组,因为是引用类型。所以在递归过程中可以保存结果。

    代码如下:

     1     public int maxPathSum(TreeNode root) {
     2         int[] max = new int[1];
     3         max[0] = Integer.MIN_VALUE;
     4         findmax(root,max);
     5         return max[0];
     6     }
     7     
     8     public int findmax(TreeNode root, int[] max){
     9         if(root==null)
    10             return 0;
    11         
    12         int left = findmax(root.left,max);
    13         int right = findmax(root.right,max);
    14         
    15         int ans = Math.max(root.val,Math.max(root.val+left, root.val+right));
    16         
    17         max[0] = Math.max(max[0],Math.max(ans,root.val+left+right));
    18         
    19         return ans;
    20         
    21     }

  • 相关阅读:
    js写入和读取cookie
    算法笔记汇总精简版
    廖雪峰Git教程3
    廖雪峰Git教程2
    廖雪峰Git教程1
    PHP fastcgi_finish_request 方法
    PHP获取远程文件的大小,通过ob_get_contents实现
    PHP 浮点型运算相关问题
    php中的func_num_args、func_get_arg与func_get_args函数
    C# ListView用法详解
  • 原文地址:https://www.cnblogs.com/springfor/p/3886411.html
Copyright © 2011-2022 走看看