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

浙江省网站备案搜索引擎网站入口

浙江省网站备案,搜索引擎网站入口,电脑上免费制作ppt的软件,做照明出口的网站解题思路: 确定根节点: 前序遍历的第一个元素是当前子树的根节点。​分割中序数组: 在中序遍历中找到根节点的位置,其左侧为左子树的中序,右侧为右子树的中序。递归构造子树: 根据左子树的长度&#xff0c…

在这里插入图片描述

解题思路:

  1. 确定根节点: 前序遍历的第一个元素是当前子树的根节点。
  2. ​分割中序数组: 在中序遍历中找到根节点的位置,其左侧为左子树的中序,右侧为右子树的中序。
  3. 递归构造子树: 根据左子树的长度,分割前序数组,分别构造左子树和右子树。

Java代码:

class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {Map<Integer, Integer> inorderMap = new HashMap<>();for (int i = 0; i < inorder.length; i++)inorderMap.put(inorder[i], i);return buildHelper(preorder, 0, preorder.length - 1,inorder, 0, inorder.length - 1,inorderMap);}private TreeNode buildHelper(int[] preorder, int preStart, int preEnd,int[] inorder, int inStart, int inEnd,Map<Integer, Integer> inorderMap) {if (preStart > preEnd || inStart > inEnd) return null;int rootVal = preorder[preStart];TreeNode root = new TreeNode(rootVal);int rootIndex = inorderMap.get(rootVal);int leftSize = rootIndex - inStart;root.left = buildHelper(preorder, preStart + 1, preStart + leftSize,inorder, inStart, rootIndex, inorderMap);root.right = buildHelper(preorder, preStart + leftSize + 1, preEnd,inorder, rootIndex + 1, inEnd, inorderMap);return root;}
}

复杂度分析:

  • 时间复杂度: O(n),每个节点仅被处理一次,哈希表查询时间为 O(1),总共有 n 个节点。
  • 空间复杂度: O(n),递归栈的深度取决于树的高度,最坏情况下(链表树)为 O(n)。哈希表存储中序遍历的值到索引的映射,占用 O(n) 空间。

在这里插入图片描述

解题思路:

  1. 前缀和与哈希表: 维护一个哈希表 prefixSum,记录从根节点到当前路径的前缀和及其出现次数。初始化时存入 {0: 1},用于处理从根节点开始的路径。
  2. 递归遍历: 对每个节点,计算当前前缀和 currentSum。检查是否存在 currentSum - targetSum 在哈希表中,若存在则累加对应次数到结果。将当前前缀和加入哈希表,递归处理左右子树,回溯时撤销当前前缀和的记录。
  3. 路径灵活处理: 路径不需要从根开始或结束在叶子,但必须向下。通过哈希表动态维护当前路径的前缀和,确保路径连续性。

Java代码:

class Solution {private int result = 0;public int pathSum(TreeNode root, int targetSum) {Map<Long, Integer> prefixSum = new HashMap<>();prefixSum.put(0L, 1);dfs(root, 0, prefixSum, targetSum);return result;}private void dfs(TreeNode node, long currentSum, Map<Long, Integer> prefixSum, int targetSum) {if (node == null) return;currentSum += node.val;result += prefixSum.getOrDefault(currentSum - targetSum, 0);prefixSum.put(currentSum, prefixSum.getOrDefault(currentSum, 0) + 1);dfs(node.left, currentSum, prefixSum, targetSum);dfs(node.right, currentSum, prefixSum, targetSum);prefixSum.put(currentSum, prefixSum.get(currentSum) - 1);}
}

复杂度分析:

  • 时间复杂度: O(n),每个节点仅被访问一次,哈希表操作(插入、查询、删除)均为 O(1)。
  • 空间复杂度: O(n),递归栈的深度取决于树的高度 h(最坏情况为链状树,h = n)。O(n) 哈希表最多存储 n 个不同的前缀和(例如,当所有节点值唯一且路径和互不相同时)。
http://www.dtcms.com/wzjs/309601.html

相关文章:

  • 点餐网站模板 手机端sem全称
  • 网站建设好找工作吗it培训学校哪家好
  • 摄影师网站推荐网络服务器图片
  • 网站开元棋牌怎么做app宁波seo教程
  • 磐安做网站软文写作公司
  • 深圳网站建设哪个推广策划方案
  • 东莞网站制作电话专业网站优化推广
  • 购物网站 怎么做免费网站创建
  • 广告网站做动图怎么做太原百度seo排名软件
  • 泸州网站开发seo发帖网站
  • 网站老是快照打开中国企业500强最新排名
  • 网站开发总结自助建站平台
  • 考试网站开发的可行性分析外贸seo网站
  • 门户网站系统设计百度手机版网页
  • 单仁营销网站的建设网络营销的工作内容包括哪些
  • 新都有没有做网站的全域seo
  • 从什么网站找做app的代码网络推广理实一体化软件
  • 公司支付网站服务费怎么做分录网站建设平台
  • 论文做系统简单还是网站简单二十条优化措施
  • 网站建设公司财务预算江苏做网站的公司有哪些
  • 简单的美食网站模板软文推广发稿
  • 个人网站可以做经营性网站产品软文撰写
  • 泰安网站建设公司哪家好网络整合营销4i原则
  • 如何用手机建网站seo免费浏览网站
  • 怎么接做网站的任务爱站网怎么使用
  • 学做衣服网站郑州网站建设哪家好
  • 嘉兴手机网站建设北京seo服务销售
  • 科技经济导刊官网亚马逊seo是什么意思
  • 做彩票网站犯法不sem是什么岗位
  • 莞城做网站公司今天新闻最新消息