当前位置: 首页 > news >正文

正规品牌网站设计地址免费漫画软件

正规品牌网站设计地址,免费漫画软件,品牌故事,佛山专业的网站建设公司力扣labuladong一刷day30天二叉树 文章目录 力扣labuladong一刷day30天二叉树一、654. 最大二叉树二、105. 从前序与中序遍历序列构造二叉树三、106. 从中序与后序遍历序列构造二叉树四、889. 根据前序和后序遍历构造二叉树 一、654. 最大二叉树 题目链接#xff1a;https://…力扣labuladong一刷day30天二叉树 文章目录 力扣labuladong一刷day30天二叉树一、654. 最大二叉树二、105. 从前序与中序遍历序列构造二叉树三、106. 从中序与后序遍历序列构造二叉树四、889. 根据前序和后序遍历构造二叉树 一、654. 最大二叉树 题目链接https://leetcode.cn/problems/maximum-binary-tree/ 思路采用分解问题的方法先构造父节点再构造左右子节点每次都在指定区间内搜索找到最大值后构造父节点再划分左右区间递归。 class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return traverse(nums, 0, nums.length - 1);}TreeNode traverse(int[] nums, int left ,int right) {if (left right) return null;int max -1, index -1;for (int i left; i right; i) {if (nums[i] max) {max nums[i];index i;}}TreeNode root new TreeNode(max);root.left traverse(nums, left, index-1);root.right traverse(nums, index1, right);return root;} }二、105. 从前序与中序遍历序列构造二叉树 题目链接https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 思路通过前序和中序构造二叉树要维护好前序的区间以及中序的区间先构造父节点再构造左右子节点父节点是前序区间的left左右子节点由递归返回。 此外要注意速度想节省遍历中序数组寻找父节点索引的时间的话可以使用map预先存储下来。 class Solution {MapInteger, Integer map new HashMap();public TreeNode buildTree(int[] preorder, int[] inorder) {for (int i 0; i inorder.length; i) {map.put(inorder[i], i);}return create(preorder, inorder, 0, preorder.length-1,0, inorder.length-1);}TreeNode create(int[] preorder, int[] inorder, int left1, int right1, int left2, int right2) {if (left1 right1 || left2 right2) return null;int midV preorder[left1];TreeNode node new TreeNode(midV);int index map.get(midV);node.left create(preorder, inorder, left11, left1index-left2, left2, index-1);node.right create(preorder, inorder, left1index-left21, right1, index1, right2);return node;} }三、106. 从中序与后序遍历序列构造二叉树 题目链接https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 思路本题和上题类似也是先构造父节点然后再构造左右子节点父节点由后续right构造然后划分中序和后序的区间递归构造左右子树。 class Solution {MapInteger, Integer map new HashMap();public TreeNode buildTree(int[] inorder, int[] postorder) {for (int i 0; i inorder.length; i) {map.put(inorder[i], i);}return create(inorder, postorder, 0, inorder.length-1, 0, postorder.length-1);}TreeNode create(int[] inorder, int[] postorder, int left1, int right1, int left2, int right2) {if (left1 right1 || left2 right2) return null;int midV postorder[right2];int index map.get(midV);TreeNode node new TreeNode(midV);node.left create(inorder, postorder, left1, index-1, left2, left2index-left1-1);node.right create(inorder, postorder, index1, right1, left2index-left1, right2-1);return node;} }四、889. 根据前序和后序遍历构造二叉树 题目链接https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-postorder-traversal/ 思路通过前序和后序去构造二叉树构造的结果不唯一但方法是一样的每次使用前序的left做为父节点left1做为左孩子的值然后使用这个去后序中去划分区间然后在划分前序遍历的区间之后递归构造即可。 class Solution {MapInteger, Integer map new HashMap();public TreeNode constructFromPrePost(int[] preorder, int[] postorder) {for (int i 0; i postorder.length; i) {map.put(postorder[i], i);}return create(preorder, postorder, 0, preorder.length-1, 0, postorder.length-1);}TreeNode create(int[] preorder, int[] postorder, int left1, int right1, int left2, int right2) {if (left1right1 || left2right2) return null;if (left1 right1) return new TreeNode(preorder[left1]);int mid preorder[left1];int index map.get(preorder[left11]);TreeNode node new TreeNode(mid);node.left create(preorder, postorder, left11, left1 index-left21, left2,index);node.right create(preorder, postorder, left1 index-left22, right1,index1, right2-1);return node;} }
http://www.hkea.cn/news/14376286/

相关文章:

  • 如何自己办网站网站开发具备知识有哪些
  • 站长之家官网网址套餐型网站建设合同
  • 分析竞争对手网站北京服务设计
  • 什么网站可以做行测昆明app制作公司在哪里
  • 微信上打开连接的网站怎么做的做网站销售的换工作
  • 个人兼职网站建设潮阳发布最新通告
  • 网站报价单百度网站验证
  • 门户网站开发哪种语言比较好wordpress前端编辑器
  • 网站备案 太烦江西网站设计方案
  • 如何提高一个网站做淘宝客网站备案要怎么写
  • 2015微信网站开发嵊州网站建设
  • 卫浴毛巾架网站建设公众号开发渠道二维码怎么做
  • 淘宝这种网站怎么做的百度的广告策略
  • 怎么建立自己的网站?顺德电子商务网站建设
  • 网站建设管理需要招聘什么人才高端品牌粉碎机
  • 德州制作网站哪家最专业页面做的比较炫酷的网站
  • 招聘wordpress网站高手兼职什么是网络营销4p策略
  • 包装设计网站排行榜前十名怎么做网站认证
  • 网站备案许可证号查询网站全网型网站建设方案
  • 仙居建设局网站三亚网站优化
  • 韩国网页设计公司网站seo优化的优点
  • 找网站开发项目centos怎么装WordPress
  • asp net4.0网站开发天津网站建设设计
  • 网站注册价格个旧做网站哪家公司好
  • 做化工的外贸网站都有什么个人网站注册步骤图解
  • 微信网站系统国外服务器有哪些
  • 线上企业推广seo外包服务公司
  • 青岛网站建设详细内容百度收录网站收费吗
  • 西安做百度推广网站 怎样备案12380网站建设情况汇报
  • 网站域名备案需要什么wordpress网页无法运作