每次找到数组中的最大值,然后递归的构建左右树

public TreeNode constructMaximumBinaryTree(int[] nums) {
if (nums.length==0) return null;
return builder(nums,0,nums.length-1);
}
public TreeNode builder(int[] nums,int sta,int end)
{
/*
思路就是每次找到最大值,然后分为两个子数组递归构建左右树
*/
if (sta>end) return null;
int max = Integer.MIN_VALUE;
int index = -1;
for (int i = sta; i <= end ; i++) {
if (nums[i]>max)
{
max = nums[i];
index = i;
}
}
TreeNode root = new TreeNode(max);
root.left = builder(nums,sta,index-1);
root.right = builder(nums,index+1,end);
return root;
}

最新文章

  1. xtrareport实现指定记录数以及填补空白行(网上整理)
  2. js原型对象与Java类的比较
  3. pcxFirefox 自定义
  4. 关于在Eclipse里面启动了服务,但是localhost:8080无法访问的问题:
  5. 网页main中左边固定宽度,右边自适应。
  6. Oracle:FOR循环语句练习
  7. SDK安装详解以及adb的来源
  8. 我踩过的Alwayson的坑!
  9. (链表 双指针) leetcode 142. Linked List Cycle II
  10. 中间人攻击工具ettercap
  11. 使用Jenkins搭建持续集成(CI)环境
  12. 深度学习中的batch的大小对学习效果的影响
  13. 5,注释、分支结构、循环结构、伪&ldquo;选择结构&rdquo;
  14. vue-router单页应用简单示例(一)
  15. Python 创建线程的方法
  16. asp.net——XML格式导出Excel
  17. php工具箱使用
  18. int(long) 类型转换为char
  19. 下了个蓝屏代码查看工具,就中病毒了。。。什么鬼病毒,竟然还是用的VBS
  20. v-if或者v-repeat等不起作用

热门文章

  1. 使用@RequestBody注解获取Ajax提交的json数据
  2. DDD(领域驱动设计)--战术设计
  3. iNeuOS工业互联平台,WEB组态(iNeuView)图元和数据点组合及生成新图元复用,实现拖业务
  4. Python中的迭代是什么意思?
  5. PyQt(Python+Qt)学习随笔:调用disconnect进行信号连接断开时的信号签名与断开参数的匹配要求
  6. Linux下安装视频转换工具ffmpeg
  7. 响应式网站css reset
  8. 自定义Django认证系统的技术方案
  9. 如何使用交易开拓者(TB)开发数字货币策略
  10. 基数排序(Radix Sort)