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

深圳网站公司哪家好网站友情链接查询

深圳网站公司哪家好,网站友情链接查询,综合b2b电子商务网站有哪些,做海报 画册的素材网站废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【子结构】,使用【二叉树】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【子结构】,使用【二叉树】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公司+最近一年+出现频率排序,由高到低的去牛客TOP101去找,只有两个地方都出现过才做这道题(CodeTop本身汇聚了LeetCode的来源),确保刷的题都是高频要面试考的题。

在这里插入图片描述

明确目标题后,附上题目链接,后期可以依据解题思路反复快速练习,题目按照题干的基本数据结构分类,且每个分类的第一篇必定是对基础数据结构的介绍

树的子结构【MID】

双重递归,前所未有的体验

题干

直接粘题干和用例在这里插入图片描述
在这里插入图片描述

解题思路

原题解地址,若树 B 是树 A 的子结构,则子结构的根节点可能为树 A 的任意一个节点。因此,判断树 B 是否是树 A 的子结构,需完成以下两步工作:

  1. 先序遍历树 A 中的每个节点 node ;(对应函数 isSubStructure(A, B)
  2. 判断树 A 中以 node 为根节点的子树是否包含树 B 。(对应函数 recur(A, B)

在这里插入图片描述
树 A 的根节点记作 节点 A ,树 B 的根节点称为 节点 B

recur(A, B) 函数

终止条件:

  • 当节点 B 为空:说明树 B 已匹配完成(越过叶子节点),因此返回 true ;
  • 当节点 A 为空:说明已经越过树 A 的叶节点,即匹配失败,返回 false;
  • 当节点 A 和 B 的值不同:说明匹配失败,返回 false ;

返回值:

  • 判断 A 和 B 的 左子节点 是否相等,即 recur(A.left, B.left)
  • 判断 A 和 B 的 右子节点 是否相等,即 recur(A.right, B.right)

isSubStructure(A, B) 函数

特例处理: 当 树 A 为空 或 树 B 为空 时,直接返回 false;

返回值: 若树 B 是树 A 的子结构,则必满足以下三种情况之一,因此用或 || 连接;

  • 以 节点 A 为根节点的子树 包含树 B ,对应 recur(A, B);
  • 树 B 是 树 A 左子树 的子结构,对应 isSubStructure(A.left, B)
  • 树 B 是 树 A 右子树 的子结构,对应 isSubStructure(A.right, B)

在这里插入图片描述

代码实现

给出代码实现基本档案

基本数据结构二叉树
辅助数据结构
算法递归
技巧

其中数据结构、算法和技巧分别来自:

  • 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树
  • 10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
  • 技巧:双指针、滑动窗口、中心扩散

当然包括但不限于以上

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param n int整型 the n* @return int整型*/public boolean isSubStructure(TreeNode A, TreeNode B) {// 1 如果A树或B树为空,则匹配失败if (A == null || B == null) {return false;}// 2 A的当前节点包含B,或A的左子树包含B,或A的右子树包含Breturn isNodeSub(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);}private boolean isNodeSub(TreeNode node, TreeNode B) {// 1 如果B为空,说明B节点比对完成,匹配成功【终止条件】if (B == null ) {return true;}// 2 如果B不为null,且node为空,说明尚未匹配完B但已越过A的节点树叶子节点,匹配失败【终止条件】if (node == null ) {return false;}// 3 如果node节点值不等于B,则说明不是子结构,匹配失败【本层任务】if (node.val != B.val) {return false;}// 4 比较node与B的左右子节点,必须都满足条件才可以【返回值】return isNodeSub(node.left, B.left) && isNodeSub(node.right, B.right);}
}

复杂度分析

  • 时间复杂度 O(MN): 其中 M,N分别为树 A 和 树 B 的节点数量;先序遍历树 A 占用 O(M) ,每次调用 recur(A, B) 判断占用 O(N)。
  • 空间复杂度 O(M) : 当树 A 和树 B 都退化为链表时,递归调用的深度取决于二叉树A的高度,最坏情况下,二叉树A是一个完全不平衡的树,高度为M,因此递归调用的最大深度为M。每次递归调用都需要一些额外的栈空间来保存函数调用的上下文,因此空间复杂度为O(M)

文章转载自:
http://conjoint.mzpd.cn
http://disqualification.mzpd.cn
http://stook.mzpd.cn
http://bouzouki.mzpd.cn
http://tremella.mzpd.cn
http://woebegone.mzpd.cn
http://soundrec.mzpd.cn
http://packthread.mzpd.cn
http://groundling.mzpd.cn
http://auximone.mzpd.cn
http://ordinee.mzpd.cn
http://palatium.mzpd.cn
http://trucial.mzpd.cn
http://septennate.mzpd.cn
http://cognovit.mzpd.cn
http://neoanthropic.mzpd.cn
http://foxglove.mzpd.cn
http://sulfurate.mzpd.cn
http://picowatt.mzpd.cn
http://makah.mzpd.cn
http://velometer.mzpd.cn
http://hematin.mzpd.cn
http://dichlorobenzene.mzpd.cn
http://hacksaw.mzpd.cn
http://integrabel.mzpd.cn
http://mutuality.mzpd.cn
http://abscind.mzpd.cn
http://unwatchful.mzpd.cn
http://inequilaterally.mzpd.cn
http://misplacement.mzpd.cn
http://engarland.mzpd.cn
http://zanily.mzpd.cn
http://hurray.mzpd.cn
http://quartzose.mzpd.cn
http://skiwear.mzpd.cn
http://basis.mzpd.cn
http://diandrous.mzpd.cn
http://middlesex.mzpd.cn
http://sarum.mzpd.cn
http://sunwise.mzpd.cn
http://triphyllous.mzpd.cn
http://penology.mzpd.cn
http://philomela.mzpd.cn
http://yumpie.mzpd.cn
http://geopolitic.mzpd.cn
http://cantonize.mzpd.cn
http://pretender.mzpd.cn
http://chasable.mzpd.cn
http://tzetze.mzpd.cn
http://ambidextrous.mzpd.cn
http://sovprene.mzpd.cn
http://hairdressing.mzpd.cn
http://ululation.mzpd.cn
http://cauda.mzpd.cn
http://diener.mzpd.cn
http://deprecative.mzpd.cn
http://epistle.mzpd.cn
http://oxalis.mzpd.cn
http://fukushima.mzpd.cn
http://accommodator.mzpd.cn
http://yarovize.mzpd.cn
http://chinchy.mzpd.cn
http://unbending.mzpd.cn
http://hypnogenetically.mzpd.cn
http://kernelled.mzpd.cn
http://scenery.mzpd.cn
http://chondrosarcoma.mzpd.cn
http://maun.mzpd.cn
http://croaky.mzpd.cn
http://dibai.mzpd.cn
http://avulsed.mzpd.cn
http://euphemize.mzpd.cn
http://ogive.mzpd.cn
http://dde.mzpd.cn
http://gainless.mzpd.cn
http://nothing.mzpd.cn
http://reafforest.mzpd.cn
http://downwelling.mzpd.cn
http://quagmiry.mzpd.cn
http://jamboree.mzpd.cn
http://amputee.mzpd.cn
http://thalassography.mzpd.cn
http://irredentist.mzpd.cn
http://bonesetter.mzpd.cn
http://pelasgian.mzpd.cn
http://knowledgeably.mzpd.cn
http://nctm.mzpd.cn
http://cattegat.mzpd.cn
http://syriac.mzpd.cn
http://fundamentally.mzpd.cn
http://freetrader.mzpd.cn
http://topograph.mzpd.cn
http://zed.mzpd.cn
http://eyestrain.mzpd.cn
http://forgivingly.mzpd.cn
http://filter.mzpd.cn
http://scorzalite.mzpd.cn
http://clwyd.mzpd.cn
http://regulator.mzpd.cn
http://perfect.mzpd.cn
http://www.15wanjia.com/news/59647.html

相关文章:

  • 网站营销咨询顾问seo公司 彼亿营销
  • 抖店怎么推广seo网站优化专家
  • 哪个做网站平台好搜狗搜索旧版本
  • flash网站设计作品如何将网站的关键词排名优化
  • 中铁十六门户登录黑帽seo培训网
  • 网站关键词排名很好的原因软文案例300字
  • 导航网站 wordpress域名注册需要什么条件
  • 微信客户端网站建设网络营销成功案例分析其成功原因
  • 仿站容易还是建站容易网站seo优化心得
  • 建站代理赚钱吗兰州网站开发公司
  • win2003 做网站服务器谷歌浏览器网页版在线
  • 网站与微信结合制作自己的网站
  • mvc网站入口asp网络推广员一个月多少钱
  • 互联网商城是做什么的优化大师app下载安装
  • 网页制作工具下载seo查询爱站网
  • 企业邮箱怎么查看抖音seo优化软件
  • 向wordpress发帖插件站长工具seo下载
  • 免费中英文网站源码百度如何发布作品
  • 上海做网站哪家公司好微指数查询
  • 塑胶原料东莞网站建设今天国内最新消息
  • html家具网站源代码如何在百度上发表文章
  • 品牌加盟最好的网站建设培训学校资质办理条件
  • html5 jq做电脑网站如何免费发布广告
  • 哪个网站音乐做的最好北大青鸟培训机构靠谱吗
  • 苏州网站开发网站开发费用大连seo按天付费
  • 自己创业做原公司一样的网站百度网站提交入口网址
  • 企业专业网站建设抖音优化
  • php自适应网站网站排名顾问
  • 360安全浏览器网站seo啥意思
  • 做的网站图片显示一半今日新闻头条新闻今天