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

泰州网站设计哪家好上海三益建筑设计有限公司

泰州网站设计哪家好,上海三益建筑设计有限公司,注册一个小网站,千度seo今天是2024年3月12日#xff0c;可能是因为今天是植树节的原因#xff0c;今天的每日一题是二叉树#x1f64f;#x1f3fb; 在受污染的二叉树中查找元素 题目描述 给出一个满足下述规则的二叉树#xff1a; root.val 0 如果 treeNode.val x 且 treeNode.left ! n…今天是2024年3月12日可能是因为今天是植树节的原因今天的每日一题是二叉树 在受污染的二叉树中查找元素 题目描述  给出一个满足下述规则的二叉树 root.val 0 如果 treeNode.val x 且 treeNode.left ! null那么 treeNode.left.val 2 * x 1 如果 treeNode.val x 且 treeNode.right ! null那么 treeNode.right.val 2 * x 2 现在这个二叉树受到「污染」所有的 treeNode.val 都变成了 -1。 请你先还原二叉树然后实现 FindElements 类 FindElements(TreeNode* root) 用受污染的二叉树初始化对象你需要先把它还原。 bool find(int target) 判断目标值 target 是否存在于还原后的二叉树中并返回结果。 示例 1 输入 [FindElements,find,find] [[[-1,null,-1]],[1],[2]] 输出 [null,false,true] 解释 FindElements findElements new FindElements([-1,null,-1]); findElements.find(1); // return False findElements.find(2); // return True 示例 2 输入 [FindElements,find,find,find] [[[-1,-1,-1,-1,-1]],[1],[3],[5]] 输出 [null,true,true,false] 解释 FindElements findElements new FindElements([-1,-1,-1,-1,-1]); findElements.find(1); // return True findElements.find(3); // return True findElements.find(5); // return False 示例 3 输入 [FindElements,find,find,find,find] [[[-1,null,-1,-1,null,-1]],[2],[3],[4],[5]] 输出 [null,true,false,false,true] 解释 FindElements findElements new FindElements([-1,null,-1,-1,null,-1]); findElements.find(2); // return True findElements.find(3); // return False findElements.find(4); // return False findElements.find(5); // return True 解题思路 利用哈希表 还原二叉树 从 root 出发先将 root 的 val 还原为 0再从 root 出发 dfs 这棵树还原二叉树 递归左儿子传入 val⋅21。递归右儿子传入 val⋅22。 递归的同时把还原后的节点值加到一个哈希表中。 class FindElements {private SetInteger valSet new HashSet();// 还原根节点并dfs二叉树public FindElements(TreeNode root) {dfs(root, 0);}// 还原二叉树并将val存入哈希表private void dfs(TreeNode node, int val) {if (node null) {return;}valSet.add(val);dfs(node.left, val * 2 1);dfs(node.right, val * 2 2);} }再利用哈希表的 contains 方法查找哈希表中知否包含 target 值。 class FindElements {private SetInteger valSet new HashSet();// 还原根节点并dfs二叉树public FindElements(TreeNode root) {dfs(root, 0);}// 查找是否包含targetpublic boolean find(int target) {return valSet.contains(target);}// 还原二叉树并将val存入哈希表private void dfs(TreeNode node, int val) {if (node null) {return;}valSet.add(val);dfs(node.left, val * 2 1);dfs(node.right, val * 2 2);} } 到这里这个算法问题就算解决啦解决这个问题的方法有很多种我也只是选了一种我自己了解的记录下来大家可以自己去尝试不同的解法比如力扣上一位大佬写出了用位运算的二进制解法。 算法复杂度分析 时间复杂度         构造函数的时间复杂度为 O(n)         函数的时间复杂度为 O(1)。 空间复杂度O(n)。 n为树的节点数空间复杂度主要为哈希表占用的空间。 写在最后植树节快乐~天天快乐~多种树~
http://www.w-s-a.com/news/418288/

相关文章:

  • 微网站是用什么开发的wordpress中英文主题
  • 纯静态网站怎么做淄博seo开发
  • 江西新农村建设权威网站盐步网站制作
  • 网站ui设计例子怎么做打鱼网站
  • 在1688做公司网站wordpress category
  • 单页面 网站 模板网站代理公司
  • 手机网站底部电话代码网站后台点击添加图片没有反应
  • 龙岩建设局网站声明自学制作网站难不难
  • 济南网站优化小黑godaddy中文网站开发
  • 做微课常用的网站广州seo优化推广
  • 主机屋如何做网站电脑网页游戏大全
  • 工作网站建设中布线费用账务处理特色的重庆网站推广
  • dede 网站地图模板htm写作网站水平哪个最好
  • 服务器上的网站erp教学零基础入门
  • 网站建设58设计资料网站
  • 如何把动态图发网站做头像网页设计实训报告小结
  • 做简历用的网站wordpress版权说明
  • 网站关键词有哪些网站新闻前置审批
  • 怎么自己注册网站义乌做公司网站
  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率