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

电子商务网站推广方法和技巧网站开发实训报告总结2021

电子商务网站推广方法和技巧,网站开发实训报告总结2021,深圳创意网站,做网站的费用是多少钱★【递归前序】【构造二叉树】Leetcode 106.从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树:star:思路分析递归解法 105. 从前序与中序遍历序列构造二叉树递归解法 凡是构造二叉树前序遍历中左右 ---------------题目链接------------------- 106.从中序与后序遍历序列构造二叉树 ⭐️思路分析 后序数组 左 右 中 中序数组 左 中 右 以后序数组的最后一个元素即为根节点为切割点先切中序数组 再根据中序数组的左长度反过来再切后序数组的左和右。 一层一层切下去每次后序数组最后一个元素就是节点元素。 递归解法 ⭐️⭐️⭐️⭐️⭐️⭐️ 1. 如果数组大小为0说明是空节点return null 2. 如果不为空那么取后序数组的最后一个节点 3. 找到后序数组最后一个节点 在中序数组中的位置 作为切割点 4. 切割中序数组切成中序左数组 和 中序右数组 5. 根据中序左数组的长度切割后序数组切成后序左数组和后序右数组 6. 递归处理左区间和右区间 时间复杂度O(N) 空间复杂度O(N) 采用了【左闭右闭】——只要一直保持一致就行 /*** Definition for a binary tree node.* public 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;* }* }*/ class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {//1.如果数组为空 那么就返回nullif(inorder.length 0 || postorder.length0){return null;}return helper(inorder, postorder, 0, inorder.length-1, 0,postorder.length-1);//}public TreeNode helper(int[] inorder, int[] postorder, int inorderBegin, int inorderEnd, int postorderBegin, int postorderEnd){if(postorderBegin postorderEnd){return null;}// 采用左闭右闭//2.如果不为空 那么就取后序数组的最后一个元素int rootval postorder[postorderEnd];TreeNode root new TreeNode(rootval);//3.切割中序数组 得到对应中序数组中rootval所在的位置 进而得到中序左数组 中序右数组int midIndex;for(midIndex inorderBegin; midIndexinorderEnd; midIndex){if(inorder[midIndex] rootval){break;}}int leftInorderBegin inorderBegin; // 中序左数组开头int leftInorderEnd midIndex-1; // 中序左数组结尾int rightInorderBegin midIndex1; // 中序右数组开头int rightInorderEnd inorderEnd; // 中序右数组结尾//4.根据中序左数组 切割后序数组得到后序左数组 后序右数组int leftPostorderBegin postorderBegin; // 后序左数组开头int leftPostorderEnd postorderBegin midIndex -inorderBegin -1; // 后序左数组结尾int rightPostorderBegin leftPostorderEnd1; // 后序右数组开头int rightPostorderEnd postorderEnd-1; // 后序右数组结尾//5.递归处理左子树和右子树root.left helper(inorder, postorder, leftInorderBegin, leftInorderEnd, leftPostorderBegin, leftPostorderEnd);root.right helper(inorder, postorder, rightInorderBegin, rightInorderEnd, rightPostorderBegin, rightPostorderEnd);return root;} }105. 从前序与中序遍历序列构造二叉树 递归解法 ⭐️⭐️⭐️⭐️⭐️⭐️ 接受参数int[ ] preorder, int[ ] inorder, preorder的开始preorder的结束inorder的开始inorder的结束 1. 如果数组大小为0说明是空节点return null 2. 从前序的第一个得到根节点root 3. 根据midval 在中序数组inorder中 寻找切割点midindex 4. 对中序数组inorder进行切割 中序左(begin/end) 中序右(begin/end) 5. 根据分化结果对前序数组preorder进行切割 前序左(begin/end) 前序右(begin/end) 6. 进行左右子树构建递归 /*** Definition for a binary tree node.* public 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;* }* }*/ class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {// 采用左闭右闭if(preorder.length 0) return null;return helper(preorder, inorder, 0, preorder.length-1, 0, inorder.length-1);}public TreeNode helper(int[] preorder, int[] inorder, int preorderBegin, int preorderEnd, int inorderBegin, int inorderEnd){// 接受参数int[] preorder, int[] inorder, preorder的开始preorder的结束inorder的开始inorder的结束// 1.如果数组大小为0说明是空节点return nullif(preorderBegin preorderEnd){return null;}// 2.从前序的第一个得到根节点rootint midval preorder[preorderBegin];TreeNode root new TreeNode(midval);// 3. 根据midval 在中序数组inorder中 寻找切割点midindexint midindex;for(midindex inorderBegin; midindexinorderEnd; midindex){if(inorder[midindex] midval){break;}}// 4.对中序数组inorder进行切割 中序左(begin/end) 中序右(begin/end)int inorderLeftBegin inorderBegin;int inorderLeftEnd midindex-1;int inorderRightBegin midindex1;int inorderRightEnd inorderEnd;// 5.根据分化结果对前序数组preorder进行切割 前序左(begin/end) 前序右(begin/end)int preorderLeftBegin preorderBegin1;int preorderLeftEnd preorderLeftBegin midindex-inorderBegin-1;int preorderRightBegin preorderLeftEnd1;int preorderRightEnd preorderEnd;// 进行左右子树构建递归root.left helper(preorder, inorder, preorderLeftBegin,preorderLeftEnd, inorderLeftBegin, inorderLeftEnd); //左root.right helper(preorder, inorder, preorderRightBegin,preorderRightEnd, inorderRightBegin, inorderRightEnd); //右return root;} }
http://www.hkea.cn/news/14287282/

相关文章:

  • 网站设计公司哪家专业附近学电脑在哪里报名
  • 松江网站建设公司要制作一个自己的网站
  • 出售源码的网站全媒体门户网站建设方案
  • 微网站平台微网站建设方案模板郴州网络推广公司推荐
  • 佛山企业网站建设服务怎么制作网页步骤
  • 比较好的建站网站seo如何优化网站推广
  • 广州网站关键词推广怎么压缩网站
  • 建设网站还要云服务器吗杭州做网站排名软件
  • 企业网站托管注意事项网站设计的原始资料
  • 网站备案容易通过吗网站建设团队分工
  • 怎么做网站推广最有效东莞网站建设市场分析
  • wamp 做网站发布网页网站建设的ppt模板下载
  • 自做网站代码是多少个人网站免费建站
  • 荣县规划和建设局网站全国造价工程师管理系统官网
  • 长沙市城市建设档案馆网站教育网站建设计划书
  • 想开发一个网站需要怎样做ui设计学校培训机构
  • 带后台的免费网站模板口碑好的南昌网站建设
  • 长清网站建设电话电子政务公开 网站建设
  • 百度建一个网站多少钱福州网站定制设计
  • 专业做二手网站中国核工业第五建设有限公司
  • 网站运营维护中需要用到什么服务器网站手机网站怎么建立
  • 做明星粉丝网站做网站工作辛苦吗
  • 百度推广开户费企业网站优化策略
  • 做家具有那个网站好模块网站弊端
  • asp网站源代码下载百度发布信息怎么弄
  • 在电脑上做网站网站开发的前端框架有哪些
  • 免费cad图纸下载网站南昌网站开发模板
  • 网站开发兼职长沙企业网站建设企业
  • 浙江网站改版设计公司电子商务专业网页设计
  • 对比插件 wordpressseo技术 快速网站排名