zoukankan      html  css  js  c++  java
  • [LeetCode]654. Maximum Binary Tree最大堆二叉树

    每次找到数组中的最大值,然后递归的构建左右树

    public TreeNode constructMaximumBinaryTree(int[] nums) {
            if (nums.length==0) return null;
            return builder(nums,0,nums.length-1);
        }
        public TreeNode builder(int[] nums,int sta,int end)
        {
            /*
            思路就是每次找到最大值,然后分为两个子数组递归构建左右树
             */
            if (sta>end) return null;
            int max = Integer.MIN_VALUE;
            int index = -1;
            for (int i = sta; i <= end ; i++) {
                if (nums[i]>max)
                {
                    max = nums[i];
                    index = i;
                }
            }
            TreeNode root = new TreeNode(max);
            root.left = builder(nums,sta,index-1);
            root.right = builder(nums,index+1,end);
            return root;
        }
  • 相关阅读:
    Java文件输入输出
    数位dp
    https://www.luogu.org/blog/An-Amazing-Blog/mu-bi-wu-si-fan-yan-ji-ge-ji-miao-di-dong-xi
    洛谷
    洛谷
    洛谷
    Java简单高精度合集
    洛谷
    洛谷
    洛谷
  • 原文地址:https://www.cnblogs.com/stAr-1/p/8410403.html
Copyright © 2011-2022 走看看