博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】654. Maximum Binary Tree
阅读量:6867 次
发布时间:2019-06-26

本文共 1587 字,大约阅读时间需要 5 分钟。

题目如下:

Given an integer array with no duplicates. A maximum tree building on this array is defined as follow:

  1. The root is the maximum number in the array.
  2. The left subtree is the maximum tree constructed from left part subarray divided by the maximum number.
  3. 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          \        1

 

Note:

  1. The size of the given array will be in the range [1,1000].

解题思路:题目不难,从72%通过率就能看出来。方法是找出数组的最大值并作为根节点,然后把数组以最大值为界分成左右两部分;之后再对左右两部分分别递归,直到数组被分割完成为止。

代码如下:

# 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 build(self,node,nums):        v = max(nums)        inx = nums.index(v)        node.val = v        ll = nums[:inx]        rl = nums[inx+1:]        if len(ll) > 0:            left = TreeNode(None)            node.left = left            self.build(left,ll)        if len(rl) > 0:            right = TreeNode(None)            node.right = right            self.build(right,rl)    def constructMaximumBinaryTree(self, nums):        """        :type nums: List[int]        :rtype: TreeNode        """        root = TreeNode(None)        self.build(root,nums)        return root

 

转载于:https://www.cnblogs.com/seyjs/p/10428443.html

你可能感兴趣的文章
char varchar nvarchar区别
查看>>
如何解决JSP页面的乱码问题
查看>>
JavaScript调用Applet的函数
查看>>
Character
查看>>
关于visualizer的setEnabled()方法何时进行设置成false?
查看>>
我的友情链接
查看>>
CISCO路由器产品配置手册
查看>>
Android 轮询最佳实践 Service + AlarmManager+Thread
查看>>
Android adb常用命令
查看>>
2012组策略自动部署wsus
查看>>
淘宝天猫网站停止支持IE6、IE7浏览器,你还在用xp吗?
查看>>
Jupyter Notebook 添加目录
查看>>
如何在Linux上从命令行嗅探HTTP流量
查看>>
AIX下两个常用命令
查看>>
从抵触到力推,.Net Core 的成功让微软正视开源
查看>>
Loadrunner11如何使用非IE浏览器录制脚本
查看>>
ACL-文件访问控制列表
查看>>
css解决div子元素margin溢出的问题
查看>>
linux内核参数注释与优化
查看>>
grep小练习
查看>>