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

比较出名的设计网站怎么给网站做后台

比较出名的设计网站,怎么给网站做后台,开发一个项目的流程,手机广告设计与制作软件★【递归】【构造二叉树】Leetcode 106.从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树:star:思路分析递归解法 105. 从前序与中序遍历序列构造二叉树递归解法 ---------------#x1f388;#x1f388;题目链接题目链接------------------- 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.zqtcl.cn/news/25359/

相关文章:

  • 怎么网站建设高州网站建设公司
  • 网站怎么在百度搜到四方坪网站建设
  • seo基础教程seo公司赚钱吗
  • 有哪些做兼职的设计网站wordpress 表单录入
  • 腾冲住房和城乡建设局网站青岛网站推广途径
  • 导航网站建设代码网站推荐
  • 网站变宽屏怎么做网站加图标
  • 响应式网站 软件的物app
  • 关闭网站跳转代码公司怎么做网页
  • PHP 网站搜索怎么做淘宝网店托管
  • tk网站的dns修改天津网站建设是什么
  • 国外优秀摄影网站系统更新后wordpress
  • 本溪北京网站建设深圳营销型网站建设服务哪家好
  • 网站吸引人的功能一台电脑如何做网站
  • 想在土巴兔做装修网站找谁wordpress 评论 邮件
  • 杭州本地网站有哪些郑州百度快照优化
  • 网站开发模板教务管理装饰行业网站建设方案
  • 南阳网站seo推广公司哪家好wordpress运行c语言
  • 新吁网站建设19楼网站模板
  • 单页营销型网站模板下载建造师官网查询系统
  • 肇庆网站制作软件网站制作 网站
  • 深圳网站建设外包公司排名北京电力交易中心主任
  • 建设银行网站会员用户名格式东莞企业网站建设费用
  • 做公司网站的公司WordPress无法加载插件js
  • 佛山家具网站建设公司青岛宣传片制作公司
  • 深圳百度网站建设手机网站建设的费用
  • 每天推荐新设计的网站wordpress主题数据
  • 文小库公文写作网站软件开发模型有几种并简述其特点
  • 毕业设计做网站论文好写吗网站建设万户网络
  • 莆田网站建设团队链友咨询