572. 另一棵树的子树
前导题:100. 相同的树
回顾一下
判断两棵二叉树相同,根结点相同 且 左子树相同 且 右子树相同。
于是判断如下:
- 根结点都为
null,返回true - 根结点不都为
null,返回false - 根结点都不为
null,但是值不相同,返回false - 根结点都不为
null,且值相同,继续判断左子树和右子树,需要同时相等。
/*** 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 boolean isSameTree(TreeNode p, TreeNode q) {if (p == null && q == null) return true;if (p == null || q == null) return false;if (p.val != q.val) return false;return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);}
}
一个树 sub 是不是树 root 的子树,那么可以判断 sub 是否和树 root 的任意子树相等。判断条件由 且 转为 或:
- 两棵树相等
- 或
sub是root的左子树 - 或
sub是root的右子树
class Solution {public boolean isSubtree(TreeNode root, TreeNode subRoot) {if (root == null && subRoot == null) return true;if (root == null || subRoot == null) return false;return isSametree(root, subRoot) || isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot);}public boolean isSametree(TreeNode r, TreeNode s) {if (r == null && s == null) return true;if (r == null || s == null) return false;if (r.val != s.val) return false;return isSametree(r.left, s.left) && isSametree(r.right, s.right);}
}
相关文章:
572. 另一棵树的子树
前导题:100. 相同的树 回顾一下 判断两棵二叉树相同,根结点相同 且 左子树相同 且 右子树相同。 于是判断如下: 根结点都为null,返回true根结点不都为null,返回false根结点都不为null,但是值不相同&#…...
MATLAB中textBoundary函数用法
目录 语法 说明 示例 匹配文本的边界 匹配文本的结尾边界 对文本的边界求反 textBoundary函数的功能是匹配文本的开头或结尾。 语法 pat textBoundary pat textBoundary(type) 说明 pat textBoundary 创建与文本开头或结尾匹配的模式。textBoundary 可以使用 ~ 运算…...
vue3的路由配置
先找到Layout布局文件,从中找到左侧边栏,找到下述代码 <SidebarItem v-for"route in noHiddenRoutes" :key"route.path" :item"route" :base-path"route.path" />/** *菜单项 <SidebarItem>: *使用…...
在彼此的根系里呼吸
爱如草木,需以晨露滋养,而非绳索捆缚。一段健康的亲密关系,恰似两株根系相连却各自向阳的树——风起时枝叶相触,晴空下共享光影,却始终保有向地心深处生长的自由。那些纠缠的根须是信任编织的网,容得下沉默…...
深入理解若依RuoYi-Vue数据字典设计与实现
深入理解若依数据字典设计与实现 一、Vue2版本主要文件目录 组件目录src/components:数据字典组件、字典标签组件 工具目录src/utils:字典工具类 store目录src/store:字典数据 main.js:字典数据初始化 页面使用字典例子…...
深入MapReduce——从MRv1到Yarn
引入 我们前面篇章有提到,和MapReduce的论文不太一样。在Hadoop1.0实现里,每一个MapReduce的任务并没有一个独立的master进程,而是直接让调度系统承担了所有的worker 的master 的角色,这就是Hadoop1.0里的 JobTracker。在Hadoop1…...
Flutter_学习记录_Tab的简单Demo~真的很简单
1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件: TabBarTabBarViewTabController 这一块,我也不知道怎么整理了,直接提供代码吧: import package:flutter/material.dart;void main() {runApp(MyApp());…...
CSS核心
CSS的引入方式 内部样式表是在 html 页面内部写一个 style 标签,在标签内部编写 CSS 代码控制整个 HTML 页面的样式。<style> 标签理论上可以放在 HTML 文档的任何地方,但一般会放在文档的 <head> 标签中。 <style> div { color: r…...
Deepseek本地部署(ollama+open-webui)
ollama 首先是安装ollama,这个非常简单 https://ollama.com/ 下载安装即可 open-webui 这个是为了提供一个ui,毕竟我们也不想在cmd和模型交互,很不方便。 第一,需要安装python3.11,必须是3.11(其他版…...
PaddleSeg 从配置文件和模型 URL 自动化运行预测任务
git clone https://github.com/PaddlePaddle/PaddleSeg.git# 在ipynb里面运行 cd PaddleSegimport sys sys.path.append(/home/aistudio/work/PaddleSeg)import os# 配置文件夹路径 folder_path "/home/aistudio/work/PaddleSeg/configs"# 遍历文件夹,寻…...
数据结构 队列
目录 前言 一,队列的基本知识 二,用数组实现队列 三,用链表实现队列 总结 前言 接下来我们将学习队列的知识,这会让我们了解队列的基本概念和基本的功能 一,队列的基本知识 (Queue) 我们先来研究队列的ADT,…...
Cocoa和Cocoa Touch是什么语言写成的?什么是Cocoa?编程语言中什么是框架?为什么苹果公司Cocoa类库有不少NS前缀?Swift编程语言?
Cocoa和Cocoa Touch是什么语言写成的? 二者主要都是用Objective-C语言编写而成的。 什么是Cocoa? Cocoa是苹果操作系统macOS和iOS上的应用程序开发框架集合,核心语言是Objective-C编程语言,在移动平台被称为Cocoa Touch,Cocoa包含多个子框架…...
登录管理——认证方案(JWT、拦截器、ThreadLocal、短信验证)
两种常见的认证方案 基于Session认证 登录状态信息保存在服务器内存中,若访问量增加,单台节点压力会较大集群环境下需要解决集群中的各种服务器登录状态共享问题 解决方案:将登录状态保存的Redis中,从Redis中查找登录状态 基于…...
Java实现LFU缓存策略实战
LFU算法原理在Java中示例实现集成Caffeine的W-TinyLFU策略缓存实战总结LFU与LRU稍有不同,LFU是根据数据被访问的频率来决定去留。尽管它考虑了数据的近期使用,但它不会区分数据的首次访问和后续访问,淘汰那些访问次数最少的数据。 这种缓存策略主要用来处理以下场景: 数据…...
物业系统改革引领行业智能化管理与提升服务质量的新征程
内容概要 在当今迅速变化的社会中,物业系统改革正在悄然推动行业的智能化管理进程。物业管理作为一个古老而传统的领域,面临着诸多挑战,包括效率低下、业主需求难以满足等。数字化转型为这一现象注入了新活力,帮助物业公司通过先…...
QT+mysql+python 效果:
# This Python file uses the following encoding: utf-8 import sysfrom PySide6.QtWidgets import QApplication, QWidget,QMessageBox from PySide6.QtGui import QStandardItemModel, QStandardItem # 导入需要的类# Important: # 你需要通过以下指令把 form.ui转为ui…...
动手学图神经网络(4):利用图神经网络进行图分类
利用图神经网络进行图分类:从理论到实践 引言 在之前的学习中,大家了解了如何使用图神经网络(GNNs)进行节点分类。本次教程将深入探讨如何运用 GNNs 解决图分类问题。图分类是指在给定一个图数据集的情况下,根据图的一些结构属性对整个图进行分类,而不是对图中的节点进…...
【Block总结】PConv,部分卷积|即插即用
论文信息 标题: Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks 论文链接: https://arxiv.org/pdf/2303.03667 GitHub链接: https://github.com/JierunChen/FasterNet 创新点 该论文的核心创新在于提出了一种新的运算符——部分卷积(PCo…...
接口使用实例(1)
大家好,今天我们来看看接口的一些实例,关于如何定义和实现接口,相信通过这些例子,我们能有一些清晰的认知。 先定义一个学生类: 再给定一个学生数组,对这个对象数组中的元素进行排序(按分数排&…...
动态规划DP 最长上升子序列模型 总览
最长上升子序列模型 1. 最长上升子序列 1.1 怪盗基德的滑翔伞 1.1.1 登山 1.1.2 合唱队形 1.2 友好城市 1.3 最长上升子序列和 1.4 导弹拦截...
从方程到应用:激光雷达核心参数与激光器选型指南
1. 激光雷达方程:从数学公式到物理意义 第一次接触激光雷达方程时,我也被那一堆希腊字母和下标搞得头晕眼花。但后来发现,这个看似复杂的方程其实就像买菜算账一样简单直白。激光雷达方程本质上是个"能量收支平衡表",它…...
时间序列分类的能效优化与剪枝策略实践
1. 时间序列分类的能效挑战与剪枝策略概述时间序列分类(Time Series Classification, TSC)作为机器学习的重要分支,在医疗监测、工业设备故障诊断、金融行为分析等领域发挥着关键作用。随着应用场景的复杂化和数据规模的扩大,传统…...
从几何视角解析单层感知机:超平面、分类与学习算法
1. 单层感知机:从几何空间看分类本质 第一次接触单层感知机时,很多人会被各种数学符号绕晕。其实换个角度看,它就是个拿着尺子在高维空间里画分界线的工具。想象你面前有一堆红蓝两色的气球,单层感知机要做的,就是找到…...
基于ReAct框架的AI智能体:如何让LLM通过Google搜索获取实时信息
1. 项目概述:当AI学会“上网冲浪”最近在折腾一个挺有意思的东西,我把它叫做“AI的浏览器”。听起来有点科幻,但核心逻辑很简单:我们如何让一个大型语言模型(LLM)不再仅仅依赖它训练时“记住”的知识库&…...
AI应用开发与AI Agent开发:小白程序员必备技能,收藏学习迎高薪未来!
本文介绍了AI应用开发和AI Agent开发的核心概念和区别,通过传统后端开发、AI应用开发和AI Agent开发三个场景的对比,阐述了AI技术如何赋能产品和服务。AI应用开发是将大模型能力嵌入产品,而AI Agent开发则是让大模型自主完成任务。文章还结合…...
大模型面试——Transformer 中的位置编码(Positional Encoding)的意义
Transformer 中的位置编码(Positional Encoding)的意义 位置编码的存在是因为 Transformer 的核心机制 Self-Attention 是“置换不变性”的。 弥补时序信息缺失:与 RNN 不同,Transformer 放弃了递归结构以实现并行化,导致模型无法识别输入 Token 的先后顺序(即“词袋模型…...
Perplexity搜索精度暴跌?揭秘92%开发者忽略的4个底层参数配置陷阱
更多请点击: https://intelliparadigm.com 第一章:Perplexity搜索精度暴跌?揭秘92%开发者忽略的4个底层参数配置陷阱 Perplexity 作为评估语言模型输出质量的核心指标,其数值异常飙升(如从 12.3 暴增至 89.7ÿ…...
NVIDIA Profile Inspector终极指南:解锁显卡隐藏性能的700+高级设置
NVIDIA Profile Inspector终极指南:解锁显卡隐藏性能的700高级设置 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 作为一款开源显卡配置工具,NVIDIA Profile Inspector提供了直…...
Git Hooks与代码质量左移:self-review工具实战指南
1. 项目概述:从“自我审查”到“代码质量守护者”最近在GitHub上看到一个挺有意思的项目,叫motiful/self-review。光看名字,你可能会觉得这又是一个关于代码审查流程或者团队协作规范的工具。但点进去仔细研究后,我发现它的定位非…...
别再“另存为”了!职场人90%的无效内耗都源于这一个操作。企业文档如何管理?
加班到晚上八点,职场人小林终于改完了项目方案,随手点了“另存为”,命名为“方案_最终版.doc“后发到了工作群。本以为可以安心下班,群里却炸锅了:“小林,你这个最终版和我手里的不一样啊?”“我…...
