首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:最小高度树

#yyds干货盘点# LeetCode程序员面试金典:最小高度树

时间:2022-12-21 19:01:26浏览次数:42  
标签:yyds right helper nums int 金典 mid LeetCode left

题目:

给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。

示例:

给定有序数组: [-10,-3,0,5,9],

一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:

         0

        / \

      -3   9

      /   /

    -10  5

代码实现:

class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
return helper(nums, 0, nums.length - 1);
}

public TreeNode helper(int[] nums, int left, int right) {
if (left > right) {
return null;
}

// 总是选择中间位置左边的数字作为根节点
int mid = (left + right) / 2;

TreeNode root = new TreeNode(nums[mid]);
root.left = helper(nums, left, mid - 1);
root.right = helper(nums, mid + 1, right);
return root;
}
}

标签:yyds,right,helper,nums,int,金典,mid,LeetCode,left
From: https://blog.51cto.com/u_13321676/5960068

相关文章

  • #yyds干货盘点# 名企真题专题: 最大间隔
    1.简述:描述给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 -ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔......
  • LeetCode HOT 100:颜色分类(荷兰国旗问题)
    题目:75.颜色分类题目描述:给你一个数组,元素只为0、1、2,分别代表红色、白色和蓝色。将数组中相同颜色的元素移动到一起,并将它们排序。也就是将0都排在最前面,1排在中间,2排......
  • [leetcode]第 5 天 查找算法(中等)
    04.二维数组中的查找思路直接遍历!两个for循环classSolution{publicbooleanfindNumberIn2DArray(int[][]matrix,inttarget){for(int[]row:mat......
  • LeetCode刷题笔记
    目录AlgorithmNote基础数组链表哈希表字符串栈与队列二叉树参考链接:代码随想录AlgorithmNote基础数组67:Sqrt-X二分查找法:x平方根的整数部分是ans是满足\(k^2......
  • #yyds干货盘点# 名企真题专题:餐馆
    1.简述:描述某餐馆有n张桌子,每张桌子有一个参数:a可容纳的最大人数;有m批客人,每批客人有两个参数:b人数,c预计消费金额。在不允许拼桌的情况下,请实现一个算法选择其中一部分......
  • #yyds干货盘点# LeetCode程序员面试金典:节点间通路
    题目:节点间通路。给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。示例1:输入:n=3,graph=[[0,1],[0,2],[1,2],[1,2]],start=0,target=2输出:tr......
  • #yyds干货盘点#Linux使用最频繁的命令:ls 命令
    ls命令介绍ls命令是英文list的简写形式。我们用它来列出文件。它的用法就是在任何目录下直接执行ls,或者在ls后接目录路径(包括相对路径和绝对路径)。当然我们还可以使用......
  • #yyds干货盘点#【愚公系列】2022年12月 微信小程序-WebGL立体图形的绘制
    前言WebGL(全写WebGraphicsLibrary)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGLES2.0结合在一起,通过增加OpenGLES2.0的一个JavaScript绑定,WebGL可以为......
  • #yyds干货盘点#【愚公系列】2022年12月 微信小程序-WebGL纹理材质的使用
    前言WebGL(全写WebGraphicsLibrary)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGLES2.0结合在一起,通过增加OpenGLES2.0的一个JavaScript绑定,WebGL可以为......
  • [LeetCode]009-回文数
    >>>传送门题目给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不......