[LeetCode]654. Maximum Binary Tree最大堆二叉树
2024-09-05 05:44:41
每次找到数组中的最大值,然后递归的构建左右树
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;
}
最新文章
- xtrareport实现指定记录数以及填补空白行(网上整理)
- js原型对象与Java类的比较
- pcxFirefox 自定义
- 关于在Eclipse里面启动了服务,但是localhost:8080无法访问的问题:
- 网页main中左边固定宽度,右边自适应。
- Oracle:FOR循环语句练习
- SDK安装详解以及adb的来源
- 我踩过的Alwayson的坑!
- (链表 双指针) leetcode 142. Linked List Cycle II
- 中间人攻击工具ettercap
- 使用Jenkins搭建持续集成(CI)环境
- 深度学习中的batch的大小对学习效果的影响
- 5,注释、分支结构、循环结构、伪&ldquo;选择结构&rdquo;
- vue-router单页应用简单示例(一)
- Python 创建线程的方法
- asp.net——XML格式导出Excel
- php工具箱使用
- int(long) 类型转换为char
- 下了个蓝屏代码查看工具,就中病毒了。。。什么鬼病毒,竟然还是用的VBS
- v-if或者v-repeat等不起作用