• LeetCode 654. Maximum Binary Tree


    LeetCode 654. Maximum Binary Tree (最大二叉树)

    题目

    链接

    https://leetcode-cn.com/problems/maximum-binary-tree/

    问题描述

    给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:

    创建一个根节点,其值为 nums 中的最大值。
    递归地在最大值 左边 的 子数组前缀上 构建左子树。
    递归地在最大值 右边 的 子数组后缀上 构建右子树。
    返回 nums 构建的 最大二叉树 。

    示例

    输入:nums = [3,2,1,6,0,5]
    输出:[6,3,5,null,2,0,null,null,1]
    解释:递归调用如下所示:

    • [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5] 。

      • [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1] 。

        • 空数组,无子节点。

        • [2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1] 。

          • 空数组,无子节点。
          • 只有一个元素,所以子节点是一个值为 1 的节点。
      • [0,5] 中的最大值是 5 ,左边部分是 [0] ,右边部分是 [] 。

        • 只有一个元素,所以子节点是一个值为 0 的节点。
        • 空数组,无子节点。

    提示

    1 <= nums.length <= 1000
    0 <= nums[i] <= 1000
    nums 中的所有整数 互不相同

    思路

    同样是递归方法,只需要找到最大值,然后左右各为子树即可。

    复杂度分析

    时间复杂度 O(n^2)
    空间复杂度 O(n)
    

    代码

    Java

        public TreeNode constructMaximumBinaryTree(int[] nums) {
            return build(nums, 0, nums.length - 1);
        }
    
        public TreeNode build(int[] nums, int l, int r) {
            if (l > r) {
    
                return null;
            }
            int index = -1;
            int max = Integer.MIN_VALUE;
            for (int i = l; i <= r; i++) {
                if (nums[i] > max) {
                    max = nums[i];
                    index = i;
                }
            }
            TreeNode root = new TreeNode(max);
            root.left = build(nums, l, index - 1);
            root.right = build(nums, index + 1, r);
            return root;
        }
    
  • 相关阅读:
    I.MX6 简单电路模拟USB设备的插入
    I.MX6 查看baudrate确定是否被其他程序占用
    I.MX6 Ethernet MAC (ENET) MAC Address hacking
    I.MX6 MAC Address 导致的系统崩溃
    I.MX6 U-boot编译找不到用户目录
    I.MX6 i2c_data_write_byte ioctl error: I/O error
    I.MX6 Android shutdown shell command
    Where Are You Standing?
    byte[]和InputStream的相互转换
    jsp 获取cookie 的值的方法
  • 原文地址:https://www.cnblogs.com/blogxjc/p/16121184.html
Copyright © 2020-2023  润新知