Leetcode 654. Maximum Binary Tree 最大二叉树 解题报告
来源:互联网 发布:vb.net serialport1 编辑:程序博客网 时间:2024/05/29 14:37
就是给了一堆不重复的数组,然后挑选一个最大的作为root,然后root左边的和右边的有分别按照这个方法进行构建。
所以我做的方法也很简单咯,那么就每次找到这一段里最大的做root,然后递归左右两边。。简单粗暴的解法。。至于再高深的求各位大佬指教,我就不懂了
哦,对了,说起来倒是有个优化策略,可以设置上界,这样就不用每次都搜索了,喵喵
Given an integer array with no duplicates. A maximum tree building on this array is defined as follow:The root is the maximum number in the array.The left subtree is the maximum tree constructed from left part subarray divided by the maximum number.The right subtree is the maximum tree constructed from right part subarray divided by the maximum number.Construct the maximum tree by the given array and output the root node of this tree.Example 1:Input: [3,2,1,6,0,5]Output: return the tree root node representing the following tree: 6 / \ 3 5 \ / 2 0 \ 1Note:The size of the given array will be in the range [1,1000].
解题代码 python
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def constructMaximumBinaryTree(self, nums): """ :type nums: List[int] :rtype: TreeNode """ def helper(start, end, upper_bound): if start > end: return None max_i = start p = start + 1 while ums[max_i] < upper_bound & p <= end: if nums[p] > nums[max_i]: max_i = p p += 1 node = TreeNode(nums[max_i]) node.left = helper(start, max_i - 1, nums[max_i] - 1) node.right = helper(max_i + 1, end, nums[max_i] - 1) return node return helper(0,len(nums) -1, 9999999)
阅读全文
0 0
- Leetcode 654. Maximum Binary Tree 最大二叉树 解题报告
- Leetcode 104. Maximum Depth of Binary Tree 二叉树的最大高度 解题报告
- leetcode 654. Maximum Binary Tree 构造最大二叉树
- leetCode 104.Maximum Depth of Binary Tree(二叉树最大深度) 解题思路和方法
- 【LeetCode】Maximum Depth of Binary Tree (二叉树最大深度)
- Leetcode Maximum Depth of Binary Tree 二叉树最大深度
- Leetcode 110. Balanced Binary Tree 平衡二叉树 解题报告
- Leetcode 655. Print Binary Tree 打印二叉树 解题报告
- Leetcode 124. Binary Tree Maximum Path Sum 最大路径和 解题报告
- leetcode解题之124. Binary Tree Maximum Path Sum Java版 (二叉树的最大路径和)
- LeetCode Binary Tree Maximum Path Sum 解题报告
- [LeetCode]Binary Tree Maximum Path Sum, 解题报告
- 【LeetCode】Binary Tree Maximum Path Sum 解题报告
- 【LeetCode】Maximum Depth of Binary Tree 解题报告
- LeetCode(124) Binary Tree Maximum Path Sum解题报告
- [leetcode] 104. Maximum Depth of Binary Tree 解题报告
- [leetcode] 124. Binary Tree Maximum Path Sum 解题报告
- LeetCode 104.Maximum Depth of Binary Tree 解题报告
- 折半查找与优化
- 服务器开发之简单的TCP回射服务器(一):服务器程序
- MyCat初步学习
- 可输入/选择的下拉框 -- 异步编程
- es5和es6中封装继承的不同
- Leetcode 654. Maximum Binary Tree 最大二叉树 解题报告
- mybatis逆向工程
- hdu 6119 百度之星初赛B 小小粉丝度度熊
- LRCN (2)
- 第3章 Spring 4.0增强和新功能 I -- Spring4.3.8参考文档中文版
- bashshell 的一些基本知识
- ctf-web--总结几点基础题的做题思路
- Qt连接mysql数据库失败
- 略坑的Thread.stop()