zoukankan      html  css  js  c++  java
  • 1026. Maximum Difference Between Node and Ancestor

    Given the root of a binary tree, find the maximum value V for which there exist different nodes A and B where V = |A.val - B.val| and A is an ancestor of B.

    A node A is an ancestor of B if either: any child of A is equal to B, or any child of A is an ancestor of B.

    Example 1:

    Input: root = [8,3,10,1,6,null,14,null,null,4,7,13]
    Output: 7
    Explanation: We have various ancestor-node differences, some of which are given below :
    |8 - 3| = 5
    |3 - 7| = 4
    |8 - 1| = 7
    |10 - 13| = 3
    Among all possible differences, the maximum value of 7 is obtained by |8 - 1| = 7.

    Example 2:

    Input: root = [1,null,2,null,0,3]
    Output: 3
    

    Constraints:

    • The number of nodes in the tree is in the range [2, 5000].
    • 0 <= Node.val <= 105
    class Solution {
        int res = 0;
        public int maxAncestorDiff(TreeNode root) {
            if(root == null) return 0;
            help(root, root.val, root.val);
            return res;
        }
        public void help(TreeNode root, int min, int max) {
            if(root == null) return;
            min = Math.min(min, root.val);
            max = Math.max(max, root.val);
            res = Math.max(res, max - min);
            help(root.left, min, max);
            help(root.right, min, max);
        }
    }

    我有病真的是,这么简单都忘了咋做。

    每次记录这个根下的max和min,更新max - min即可。

  • 相关阅读:
    十七、oracle 权限
    九、oracle 事务
    十六、oracle 索引
    十九、oracle pl/sql简介
    二十二、oracle pl/sql分类二 函数
    通过HttpURLConnection模拟post表单提交
    八、oracle 分页
    二十一、oracle pl/sql分类一 存储过程
    xStream框架操作XML、JSON
    二十、oracle pl/sql基础
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/13951917.html
Copyright © 2011-2022 走看看