算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 将有序数组转换为二叉搜索树,我们先来看题面:

https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

题意

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。样例

解题

二叉搜索树是一种树种每个节点都大于它的左子节点,小于它的右子节点的树。如果中序遍历二叉搜索树,则结果为一个有序序列。由二叉搜索树的性质可知,题目中给定有序数组的中间数即为根节点,中间数左边的序列为根节点的左子树,右边的序列为根节点的右子树,依次类推,因此,可以采用二分法来解题。

# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution:def sortedArrayToBST(self, nums: List[int]) -> TreeNode:return self.BST(nums, 0, len(nums)-1)def BST(self, nums, start, end):if start > end:return None
        mid = (start + end)//2
        cur = TreeNode(nums[mid])
        cur.left = self.BST(nums, start, mid-1)
        cur.right = self.BST(nums, mid + 1, end)return cur

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力。

上期推文:LeetCode1-100题汇总,希望对你有点帮助!LeetCode刷题实战101:对称二叉树LeetCode刷题实战102:二叉树的层序遍历LeetCode刷题实战103:二叉树的锯齿形层次遍历LeetCode刷题实战104:二叉树的最大深度LeetCode刷题实战105:从前序与中序遍历序列构造二叉树LeetCode刷题实战106:从中序与后序遍历序列构造二叉树LeetCode刷题实战107:二叉树的层次遍历 II

laravel数组转换为字符串_LeetCode刷题实战108:将有序数组转换为二叉搜索树相关推荐

  1. gorm preload 搜索_LeetCode刷题笔记|95:不同的二叉搜索树 II

    题目描述 给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 . 示例 输入:3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null ...

  2. byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...

    844. 比较含退格的字符串 难度:简单 第一:简单浏览一下题目 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果.# 代表退格字符. 注意:如果对空文 ...

  3. leetcode数组汇总_LeetCode刷题实战118:杨辉三角

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家聊 ...

  4. 子集和问题 算法_LeetCode刷题实战90:子集 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  5. ( “树” 之 BST) 109. 有序链表转换二叉搜索树 ——【Leetcode每日一题】

    二叉查找树(BST):根节点大于等于左子树所有节点,小于等于右子树所有节点. 二叉查找树中序遍历有序. 109. 有序链表转换二叉搜索树 给定一个单链表的头节点 head ,其中的元素 按升序排序 , ...

  6. 【LeetCode每日一题】——109.有序链表转换二叉搜索树

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...

  7. leetcode数组汇总_LeetCode刷题实战43:字符串相乘

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  8. 数组翻转_LeetCode刷题实战151:翻转字符串里的单词

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家聊 ...

  9. left join缺失右括号_LeetCode刷题实战31:最长有效括号

    来源: https://www.cnblogs.com/techflow/p/12393742.html 算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为 ...

最新文章

  1. R语言ggplot2可视化:可视化多个图像并组合起来(如果没有对齐,看着丑陋))、保证组合的图像图像区域对齐或者图像整体对齐(Align plot areas in ggplot)
  2. 华为内部面试题库---(9)
  3. Laravel 中的异常处理
  4. 执行计划有时不准确_生管如何应对采购物料不及时、回不来?
  5. boost::math模块计算 Bessel 和 Neumann 函数的零点的测试程序
  6. 学习OpenCV,看这些!
  7. matlab用for编写乘法表,实验二 Matlab程序设计基本方法1
  8. 操作系统原理与实践-2操作系统的引导
  9. 消息称AirPods 3搭载U1芯片 耳机柄变小
  10. 跨境商家为什么要建自己的独立站?
  11. linux spoon.sh闪退,kettle使用spoon.sh打开报错问题解决
  12. vue递归组件eventBus策略解决父子组件通讯问题
  13. 计算机考研 东华大学,东华大学(专业学位)计算机技术考研难吗
  14. Linux-firewalld-squid正向代理
  15. 假设有一台多道程序的计算机,某多道程序设计系统配有一台处理器和两台外设101、102,现有3个优先级由高到低的作业J1、J2、J3都已 - 试题答案网问答...
  16. 写刀路的一些经验[分享] 铜公加工方法及注意事项
  17. Linux上查找最大文件的 3 种方法
  18. 计算机能不能升级固态硬盘,笔记本升级固态硬盘后会怎样?秒懂
  19. 网站微调是什么意思?能带来什么作用?
  20. 基于go的二维码签到系统

热门文章

  1. JDK动态代理运行期生成的字节码文件class,获取反编译方法
  2. Ubuntu安装配置JDK、Tomcat、SVN服务器
  3. 推荐一本学javascript的书籍---经典
  4. Apache Arrow 内存数据交换格式
  5. backbone, AngularJS, EmberJS 简单比较
  6. Jsp基本page指令、注释、方法声明,书写规范及注意事项
  7. 数据库设计三范式的举例及四大特性说明
  8. 关于python字符编码_关于python文件的字符编码
  9. python星空画法教程_教程 | 美轮美奂的星空画法
  10. python曲线图数据爬取_python爬取二手房库存,存数数据库,生成折线图(上)