网站app生成器下载wordpress slug
网站app生成器下载,wordpress slug,网页浏览器怎么扫描二维码,宿迁房产网安居客题目#xff1a;
给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:
创建一个根节点#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。
返回 nums…题目
给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:
创建一个根节点其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。
返回 nums 构建的 最大二叉树 。 /** 单调栈、递归* 思路单调栈* 根据题目对于二叉树的构建描述nums 中的任二节点所在构建树的水平截面上的位置仅由下标大小决定。* 栈中的元素从栈底到栈顶是单调递减的。* 栈顶元素大于待插入的元素带插入元素入栈同时维护二叉树待插入元素是栈顶元素的右子树。* 若小于待插入元素栈顶元素出栈同时维护二叉树栈顶元素是待插入元素的左子树。* * 参考链接https://leetcode.cn/problems/maximum-binary-tree/solutions/1762400/zhua-wa-mou-si-by-muse-77-myd7/* auther start* create 2023-11-28 18:56*/
public class L654 {public TreeNode constructMaximumBinaryTree(int[] nums) {DequeTreeNode stack new LinkedList();for (int i 0; i nums.length; i) {TreeNode node new TreeNode(nums[i]);
// 栈顶元素和待插入元素进行比较while (!stack.isEmpty()) {TreeNode topNode stack.peek();//栈顶元素大于待插入元素if (topNode.val node.val) {stack.push(node);topNode.right node;break;} else {stack.pop();node.left topNode;}}if (stack.isEmpty()) stack.push(node);}return stack.peekLast();}
}class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) {this.val val;}TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left left;this.right right;}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86915.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!