leetcode108 将有序数组转换为二叉搜索树

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。

本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

示例:

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

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

      0
     / \
   -3   9
   /   /
 -10  5

思路:直接建树即可。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode sortedArrayToBST(int[] nums) {return help(nums,0,nums.length-1);}public TreeNode help(int[] nums,int left,int right){if(left>right)return null;int mid=(left+right)/2;TreeNode root=new TreeNode(nums[mid]);root.left=help(nums,left,mid-1);root.right=help(nums,mid+1,right);return root;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MachineLearning(12)- RNN-LSTM-tf.nn.rnn_cell

RNN-LSTM1.RNN2.LSTM3. tensorflow 中的RNN-LSTM3.1 tf.nn.rnn_cell.BasicRNNCell()3.2 tf.nn.rnn_cell.BasicLSTMCell()3.3 tf.nn.dynamic_rnn()--多步执行循环神经网络1.RNN RNN-Recurrent Neural Network-循环神经网络 RNN用来处理序列数据。多层感知机MLP层间节点全联接&…

AWS的VPC使用经验(二)

上文说了如何创建自定义VPC网络的EC2实例,这节说如何在多个VPC之间创建对等连接。 这里分别填写自己的VPC和对方的VPC的ID信息,然后在对方的VPC里就能看到有连接请求,在对方的连接请求里选择 “操作”->接受。 到这里已经快要收尾了&…

ubuntu nginx配置负载均衡篇(一)

Nginx 代理服务的配置说明 1、设置 404 页面导向地址 error_page 404 https://www.runnob.com; #错误页 proxy_intercept_errors on; #如果被代理服务器返回的状态码为400或者大于400,设置的error_page配置起作用。默认为off。 2、如果我们的代理只允许接受get,post请求…

坦克大战

效果 map.js var map4 [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,2,0,0,2,2,0,0,0,2,2,0,0,2,2,0,0,2,2,0,2,2,0],[0,2,2,0,0,2,2,0,0,0,2,2,3,3,2,2…

windows安装 MySQL5.7服务端

1,安装https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.30-winx64.zip mysql安装包。 2. 自己配置my.ini [client] port=3306 [mysql] default-character-set=utf8[mysqld] character-set-server=utf8 port=3306 basedir="D:/mysql-5.7.30-winx64/" datad…

screen命令使用说明

有些程序写的很操蛋,比如放到后台执行,但后边还需要再切回前台来重新执行,这个时候我们选择screen工具: screen -d -m -S LoginServer[6001] ./run_login_server.sh 具体的screen命令包含哪些参数,可以参考scree…

看这玩意复习你还会挂科?《数据结构篇》

一.绪论 1.何谓程序设计? 程序 算法 数据结构 2.数据结构的定义 是相互之间存在一种或多种特定关系的数据元素的集合 3.数据、数据元素、数据对象的概念 数据(data):对客观事物的符号表示,含义很广&am…

苹果订阅服务器端开发

有时候我们想做一个苹果订阅功能,需要在苹果开发者后台添加订阅商品productid/ 订阅需要增加一个参数: password: 秘钥, 就可以了, 但是官方文档说秘钥仅仅用在自动续订上面 大家叫后台加个验证,如果苹果验证返回21004的话(21004 你提供的共享密钥和账户的共享密钥不一致)…

nginx代理配置根据ip地址来转发到不同的地址端口

最近我们在开发的某SLG游戏的某业务要做如下场景: 要求在全球各个区域访问离他最近的服务器节点:用户通过访问域名A,在服务器端解析用户来源,根据ip地址来源来转发到对应的最近的服务器节点。 由于我们之前的业务一些设计很难调整,所以我将通过代码层面来进行做转发处理,…

做了nginx反向代理之后常见问题汇总

1.客户端无缘无故的主动断开和服务器的连接,如图: 服务器端收到了FIN包,查看了nginx 的配置有个选项:proxy_timeout选项 设置为30s。 注意:“proxy_timeout”这个参数可以写在stream节点下,所有server都生效…

在GoogPlay上发布的包Facebook登录失败提示签名问题

在googplay提审的包发布后,发现Facebook登录功能异常,提示如下: 意识到可能是hashkey出问题了,但是之前测试都是好的,原来是上传包到googlePlay后有个二次签名,会修改hashkey的,所以需要在Facebook后台添加下重新签名的hashkey。 基本签名信息在Google Play 上都能查看…

根据当前docker容器生成镜像提交到远端服务器

docker commit 4d6883e5fa21 gaoke/koa_ios docker push gaoke/koa_ios 然后在远端可看到

2019我做成的事情

1、ccpc河北金 这个省赛可能是退役赛了,因为下半年写项目,明年实习,没机会参加省赛、区预赛了。 2019.5大二的时候参加的,记得敲了个区间dp,大模拟,队友数学没搞出来,有一个搜索也是胆子不够大…

TCP: request_sock_TCP: Possible SYN flooding on port 80. Sending cookies. Check SNMP counters

最近老发现服务器丢包严重,想通过ssh登录查看原因,但是仍然失败,后来重启云服务器后通过单用户模式进入查看系统日志: TCP: request_sock_TCP: Possible SYN flooding on port 80. Sending cookies. Check SNMP counters 系统的内存,CPU资源是没问题的,足够当前的业务量…

Redis你不得不探索的11个问题

1. 说说Redis基本数据类型有哪些吧 字符串:redis没有直接使用C语言传统的字符串表示,而是自己实现的叫做简单动态字符串SDS的抽象类型。C语言的字符串不记录自身的长度信息,而SDS则保存了长度信息,这样将获取字符串长度的时间由O(…

折纸的折痕(RVL中序遍历)

这个题我见到过不止一次。笔试面试。 你拿个纸折一折会发现是这样的: 这棵树左子树是纸的下半部分,右子树是纸的上半部分。 下折痕指的是折痕突起的方向是纸的背面。 可以看出折痕是一棵满二叉树,根节点是下折痕,每一棵子树的左…

动态规划做多了以后,总结的相关知识

动态规划 Dynamic Programming DP 准则 动态规划的本质,是对问题状态的定义和状态转移方程的定义。 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。 如何拆分…

(十三) 深入浅出TCPIP之TCP套接字参数

专栏其他文章: 理论篇: (一)深入浅出TCPIP之理解TCP报文格式和交互流程 (二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上) (三)深入浅出TCPIP之再识TCP,理解…

Linux必懂知识大总结(上)

CPU top top:查看每个进程的情况 在top模式下,输入1:查看每个CPU的性能数据,注意观察是否有CPU100%占用率 CPU参数含义: 1)us过高表示Java应用程序消耗了大量CPU,需要定位是哪一个线程&#x…

如何抓住QQ小游戏买量红利:休闲与内购小游戏买量优化方法分享

2019年5月,Qzone小游戏、玩一玩整合升级为全新QQ小游戏平台,其以开放的社交生态和关系链,为开发者带来了巨大的流量红利。 为了帮助更多开发者适应和了解新市场。本文将介绍QQ小游戏投放规模现状以及各项扶持政策,并解读轻度小游…