题目要求,题目地址

给定一个不含重复数字的数组,最大二叉树构建规则如下:

1、根是数组中最大的数字

2、左边的子树是最大数字左边的内容

3、右边的子树是最大数字右边的内容

答案

class Solution(object):
def constructMaximumBinaryTree(self, nums):
"""
:type nums: List[int]
:rtype: TreeNode
"""
#print(max(nums))
#print(nums.index(max(nums)))
#print(nums)
if len(nums) == 0:
return None t = TreeNode(max(nums))
if len(nums) > 1:
t.left = self.constructMaximumBinaryTree(nums[:nums.index(max(nums))])
t.right = self.constructMaximumBinaryTree(nums[nums.index(max(nums)) + 1 :])
else:
t.left = None
t.right = None return t

优化思路

提交后这个答案只打败了17%的对手,分析一下感觉是因为index、len函数调用次数过多,应该可以将结果放在一个变量中,提高执行效率。

本文为作者原创,如果您觉得本文对您有帮助,请随意打赏,您的支持将鼓励我继续创作。

Leetcode刷题记录:构建最大数二叉树的更多相关文章

  1. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  2. Leetcode刷题记录(python3)

    Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

  3. LeetCode刷题记录(python3)

    由于之前对算法题接触不多,因此暂时只做easy和medium难度的题. 看完了<算法(第四版)>后重新开始刷LeetCode了,这次决定按topic来刷题,有一个大致的方向.有些题不止包含 ...

  4. leetcode 刷题记录(java)-持续更新

    最新更新时间 11:22:29 8. String to Integer (atoi) public static int myAtoi(String str) { // 1字符串非空判断 " ...

  5. LeetCode 刷题记录(二)

    写在前面:因为要准备面试,开始了在[LeetCode]上刷题的历程.LeetCode上一共有大约150道题目,本文记录我在<http://oj.leetcode.com>上AC的所有题目, ...

  6. LeetCode 刷题记录

    写在前面:因为要准备面试,开始了在[LeetCode]上刷题的历程.LeetCode上一共有大约150道题目,本文记录我在<http://oj.leetcode.com>上AC的所有题目, ...

  7. leetcode刷题记录——树

    递归 104.二叉树的最大深度 /** * Definition for a binary tree node. * public class TreeNode { * int val; * Tree ...

  8. leetCode刷题记录

    (1)Linked List Cycle Total Accepted: 13297 Total Submissions: 38411 Given a linked list, determine i ...

  9. 算法进阶之Leetcode刷题记录

    目录 引言 题目 1.两数之和 题目 解题笔记 7.反转整数 题目 解题笔记 9.回文数 题目 解题笔记 13.罗马数字转整数 题目 解题笔记 14.最长公共前缀 题目 解题笔记 20.有效的括号 题 ...

随机推荐

  1. [转] HTML5之FileReader的使用

    HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型. FileReader的使用方式非常简 ...

  2. springboot 解决 woff2、ttf 跨域无法解析问题

    @Configuration public class CORSConfiguration extends WebMvcConfigurerAdapter { @Override public voi ...

  3. 查看浏览器中Cookie信息

    一般在浏览器的设置中能找到Cookie的相关设置和查看信息 在js中使用 alert(document.cookie) 也能查看到当前页面的 Cookie 信息实现方式1.若是自己开发的页面 直接在j ...

  4. laravel Tinker报错 BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder

    进行模型关联操作, php artisan tinker 执行 $user = App\Models\User::find(1) $user->followings()->attach([ ...

  5. UEFI启动

    uefi是一种更快捷快速的电脑启动配置,它的全称是“统一可扩展固件接口”(Unified Extensible Firmware Interface) 要详细了解uefi之前,我们不得不从bios说起 ...

  6. Ubuntu下安装软件提示无法锁定管理目录(/var/lib/dpkg/)的解决办法

    Ubuntu下安装软件提示无法锁定管理目录(/var/lib/dpkg/)的解决办法   在安装软件的时候,有时候提示,无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? 这是 ...

  7. 004.iSCSI客户端配置示例-Linux

    一 安装软件 [root@system2 ~]# yum -y install iscsi-initiator-utils 二 修改相关参数 [root@system2 ~]# vi /etc/isc ...

  8. Java中static块执行时机

    Java中static块执行时机 演示例子 在使用static进行初始化的操作,怎么也执行不了!代码如下: public class StaticDemo { public static final ...

  9. SpringMVC(八) RequestMapping HiddenHttpMethodFilter

    SpringMVC隐藏方法: 使用PUT和DELETE方法.默认HTML支持GET和POST方法.通过HiddenHttpMethodFilter将POST转成PUT和DELETE方法. 1.将Hid ...

  10. 【WIN10】WIN2D——圖像處理

    源碼下載:http://yunpan.cn/c3iNuHFFAcr8h  访问密码 8e48 還是先來看下截圖: 實現了幾個效果:放大.縮小.旋轉.左右翻轉.上下翻轉,亮度變化.灰度圖.對比度.高斯模 ...