10.30二叉树一些性质,找公共祖先(一般与搜索树),操作的复杂度,选择题细节
课上
一些结论,性质

n0,n1,n2指的是子结点的数量,n0没有子节点,叶子结点

n=2*n2+n1+1,若n1为奇数,则n为偶数,不然,则为奇数

满二叉树
没有度为1的结点,即每个结点要么没有孩子结点,要么就有两个孩子结点
没有孩子结点的结点一定是叶子结点
回顾
寻找二叉搜索树最近公共祖先
思路是找到从根节点到两个结点的路径,由于是一个树,所以最开始的路径是一定一样的,即在同一颗树上至少具有相同的根节点,然后一直往下走,走到最后一个分岔口,开始分叉,即路径中最后一个相同的结点时,就是最近公共祖先

始终保持最近的相同结点,可以在退出时直接返回最后一个相同的结点,即最近公共祖先

找根节点到目标结点的路径,是从根节点开始
每次迭代中,先入当前结点,再更新,最后迭代结束,加入目标值
寻找二叉树的公共祖先
思路还是找路径,然后返回最后一个相同的结点
但由于不是搜索树,不满足左子树比根节点小,右子树比根节点大的性质,所以找路径的方法不同

采用dfs方式找路径,如果已经找到了,或者是叶子结点尝试继续向下,则直接返回
不然就是还没找到,先把当前的结点入列,然后判断是不是目标值,如果是就打上标记并直接返回
不然,继续递归向下
遍历两个孩子,看flag,如果在左子树里找到了,flag就会为1,那么在右子树中就不会继续递归,不然继续
最后都遍历完后,可能找到了,也可能没找到,找到了就直接返回,不操作,不然就说明当下的子树里没有,应该回溯
![]()

二叉树性质,复杂度
对于二叉树,我们维护一个堆,插入和依次获取元素的时间复杂度皆为O(logn)
插入
将元素插入最后一位,再进行向上冒泡,即如果父节点的值小于被插入的元素,父节点下移,被插入的元素上移。时间复杂度取决于树的高度h。而完全二叉树的树的高度为[logn+1]的上取整,所示时间复杂度为O(logn)。
n是插入前的树的结点数,插入完后n++

选择题

插入排序需要不断移动左序列,即遍历到的位置之前是有序的,后面是无序的,只有到最后才完全有序;选择排序是每次选一个最大的交换到序列的相应尾端位置;冒泡排序也是这个思路,只不过选择排序是选后交换,每次只用一次,但冒泡排序选和交换同时进行,每次至少需要一次
快速排序在有序时最慢为n^2,原因


标记,一些与……无关的排序

元素的移动次数与关键字的初始排列次序无关的是:基数排序
元素的比较次数与初始序列无关是:选择排序
算法的时间复杂度与初始序列无关的是:选择排序

最坏的情况和最好的情况恰好相反,在指定好比较的方向下
如果是从左到右,每次都和有序的第一个(当前的最小)比较,那么逆序是最好,顺序是最坏
这时插入的判断条件是找到左边为空或比左边大,右边为空或比右边小的位置
如果是从右到左,每次都和有序的最后一个(当前的最大)比较,那么逆序是最坏,顺序是最好
因为逆序时,每次接下来的牌都是当前的最小,顺序时,每次的牌都是当前的最大
相关文章:
10.30二叉树一些性质,找公共祖先(一般与搜索树),操作的复杂度,选择题细节
课上 一些结论,性质 n0,n1,n2指的是子结点的数量,n0没有子节点,叶子结点 n2*n2n11,若n1为奇数,则n为偶数,不然,则为奇数 满二叉树 没有度为1的结点,即每个结点要么没有孩子结点,要么…...
亮氨酸脯氨酸肽——一种新型的医药中间体研究肽
亮氨酸脯氨酸医药中间体肽是一种合成(人造)激素,类似于大脑中产生的天然激素。它用于治疗许多医疗问题,包括: 子宫平滑肌瘤(子宫肌瘤)出血引起的贫血,或晚期或晚期前列腺癌症&#…...
Ubuntu 22.04 开机闪logo后卡在/dev/sda3: clean
环境 Vmware 17.0.0,CPU 2,内存4G,硬盘50G Ubuntu 22.04 问题描述 开机 --> 显示两行代码 --> 显示ubuntu logo --> 左上显示两个代码卡住不动 原因分析 1、网上大多说显卡驱动,最近没安装相关软件,也没…...
avue-crud 自定义列
基本设置: option: {columnBtn: false,refreshBtn: false,addBtn: false,delBtn: false,editBtn: false,viewBtn: false,searchShowBtn: false,height: auto,maxHeight: auto,calcHeight: 70,searchLabelWidth: 58,tip: false,searchShow: false,searchMenuSpan: 6…...
达索系统SOLIDWORKS 2024 装配体新增功能
如今市场环境紧迫,许多企业在这样的情形之下,都需要尽快将产品推向市场,赢得头筹。所以产品设计需要快速进行装配验证,以确保产品功能和性能的准确性和可靠性,同时原型或样机的制造和装配需要尽快完成,以满…...
电脑入门:电脑专业英语500词,供新手参考
1. file n. 文件;v. 保存文件 2. command n. 命令,指令 3. use v. 使用,用途 4. program n. 程序 5. line n. (数据,程序)行,线路 6. if conj. 如果 7. display vt. 显示,显示器 8. set v. 设置,n. 集合 9. key n. 键,关键字,关键码 10. list n. 列表,显示,…...
采购管理工具-采购软件-Leangoo免费看板工具
我们可以按照公司的实际情况定制采购流程。 1、在Leangoo免费看板工具中创建一个项目,项目类型建议选择“轻量级协作”,项目模版建议选择“人事与行政” 系统会自动为您创建四个看板,如下图: 图1 2、在项目内创建一个 “办公室采…...
【23真题】大神凭这套拿452分!看看你能拿多少?
今天分享的是23年福州大学866的信号与系统试题及解析。23年福州大学新一代电子信息的最高分是452分!但是我看不到单科分数。按照75,75,150,150。也就是只有450,说明这个同学,专业课和数学几乎拿满ÿ…...
大数据之LibrA数据库系统告警处理(ALM-12002 HA资源异常)
告警解释 HA软件周期性检测Manager的WebService浮动IP地址和数据库。当HA软件检测到浮动IP地址或数据库异常时,产生该告警。 当HA检测到浮动IP地址或数据库正常后,告警恢复。 告警属性 告警参数 对系统的影响 如果Manager的WebService浮动IP地址异常…...
CSS基础入门04
目录 1.内边距 1.1基础写法 1.2复合写法 2.外边距 2.1基础写法 2.2复合写法 2.3块级元素水平居中 3.去除浏览器默认样式 4.弹性布局 4.1初体验 5.flex 布局基本概念 6.常用属性 6.1justify-content 6.2align-items 1.内边距 padding 设置内容和边框之间的距离. …...
LeetCode2741.特别的排列 状压
暴力枚举的话是n! 考虑状压DP,其实就是用二进制表示状态 再进行暴力 同时加一个记忆化就好了 这里有常用技巧: 全集(1<<n)-1 增加某个元素 x | (1<<i) 删除某个元素 x & ~(1<<i) const i…...
【Linux】Centos 8 服务器部署:阿里云域名注册、域名解析、个人网站 ICP 备案详细教程
目录 一、背景信息 二、操作步骤 (1)查询域名 (2)加入域名清单 (3)确认订单信息 (4)支付 (5)等待域名实名认证通过 三、域名注册成功 四、查看域名…...
Sass、Less和Stylus之间有什么主要的区别?
Sass、Less和Stylus是三种常见的CSS预处理器,它们在功能和语法上有一些区别。以下是它们之间的主要区别: 1:语法差异: Sass使用缩进的语法,使用类似于Python的缩进来表示嵌套规则和块级作用域。Less和Stylus使用类似…...
第八章 软件测试自动化
一、学习目的与要求 通过本章的学习,了解自动化测试应考虑的各种因素及如何衡量自动化测试成本,掌握自动化测试和手工测试的优缺点,能正确选择软件测试策略,了解测试工 具的分类和使用目的,熟悉常用的测试工具…...
科大讯飞勾勒生成式AI输入法“模样”,开启下一代输入法革命
回顾国内第三方输入法赛道近十余年的发展,移动互联网的市场红利催生了科大讯飞、百度、搜狗等颇具规模和实力的头部厂商。与此同时,历经多年、多方角逐,第三方输入法市场进入存量阶段,升级技术、优化用户体验来挖掘存量࿰…...
OV-VG: A Benchmark for Open-Vocabulary Visual Grounding
OV-VG: A Benchmark for Open-Vocabulary Visual Grounding 一、Abstract 写在前面 又是一周周末,光调代码去了,都没时间看论文了,汗。 这是一篇关于开放词汇定位的文章,也是近两年的新坑,但是资源也是需要不少。 …...
win10 javaweb 项目8080端口被占用
文章目录 前言出现场景:解决思路: 前言 提示:生活该走向何处?也许你还不知道答案,但是你一定是答案的一部分。 出现场景: 解决思路: 找到运行的进程直接干掉 打开命令窗口(win r…...
C语言每日一题(22)合并两个有序数组
力扣网 88. 合并两个有序数组 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意…...
C++学习day--24 推箱子游戏图像化开发
环境要求: 1、VS2015以上 2、成功安装并配置图形库 项目注意事项:代码复制好以后,把下面的字符集改为多字节字符集 第 1 节 项目需求 实现一款推箱子游戏,效果如下图所示 , 具体规则: 1. 箱子只能推动而不能拉动…...
YOLOv8中的After Fuse指的是什么?
Fuse是指模型的一些模块进行融合。常见的就是conv和bn层进行融合,在训练的时候模型是存在conv和bn的,但在推理的过程中,模型在初始化的时候会进行模型fuse,把其中的conv和bn进行融合,通过一些数学转换把bn层融合到conv里面,还有一些例如DBB,RepVGG等等模块支持融合的这些在fuse…...
数字孪生软件篇教程(从零入门到工业落地)
前言 在数字孪生行业中,硬件决定真假,软件决定颜值与逻辑。很多新手误区:把数字孪生当成3D建模、做炫酷大屏。 真正工业级软件架构:三维建模 + 后端服务 + 数据中台 + 可视化引擎 + 仿真逻辑。 本篇为配套硬件篇专属软件教程,保持一模一样排版结构、通俗易懂、零基础入…...
从 N+1 到 joinedload:理解 SQLAlchemy 关系加载的核心机制
从 N1 到 joinedload:理解 SQLAlchemy 关系加载的核心机制文章摘要 本文围绕 SQLAlchemy 一对多关系加载展开,重点解释 relationship、lazy loading、selectinload、joinedload、N1 问题以及 joinedload 加载集合关系时为什么需要unique()。前言…...
GPT-4 Turbo访问权、优先响应、高级数据分析——ChatGPT Plus五大隐藏权益深度拆解,92%用户根本没用全
更多请点击: https://intelliparadigm.com 第一章:ChatGPT Plus订阅值不值得买 ChatGPT Plus 提供每月 $20 的固定订阅服务,主打 GPT-4 模型访问、优先响应队列、文件上传解析(PDF/CSV/TXT 等)及自定义 GPTs 功能。是…...
动态未知环境下无人机轨迹规划技术SANDO解析
1. 动态未知环境中的轨迹规划挑战在机器人自主导航领域,动态未知环境下的轨迹规划一直是个棘手问题。想象一下无人机在密集城市环境中穿行,既要避开突然出现的行人车辆,又要应对GPS信号丢失和传感器视野受限的情况。传统规划方法通常需要精确…...
通过MCP协议集成ChatGPT桌面应用,实现AI助手无缝协作
1. 项目概述与核心价值最近在折腾AI工作流,发现一个痛点:我经常在Claude Desktop或者Cursor这类支持MCP协议的AI助手里面写代码、分析问题,但有时候需要调用ChatGPT的能力,比如让它帮我润色一段英文,或者用它的代码解释…...
038翻转二叉树
翻转二叉树 题目链接:https://leetcode.cn/problems/invert-binary-tree/description/?envTypestudy-plan-v2&envIdtop-100-liked 我的解答: public TreeNode invertTree(TreeNode root) {if(rootnull){return null;}TreeNode temproot.left;roo…...
Qt跨平台崩溃捕获实战:集成qBreakpad与符号化调试全流程
1. 为什么需要崩溃捕获系统? 当你开发的Qt应用程序在用户电脑上崩溃时,最头疼的问题是什么?没错,就是无法复现和定位问题。用户可能只会简单反馈"程序闪退了",而你要在数百个源代码文件中大海捞针。这就是为…...
系统发育树可视化终极指南:用TreeViewer轻松创建专业级进化树
系统发育树可视化终极指南:用TreeViewer轻松创建专业级进化树 【免费下载链接】TreeViewer Cross-platform software to draw phylogenetic trees 项目地址: https://gitcode.com/gh_mirrors/tr/TreeViewer 你是否曾为系统发育树的可视化而烦恼?面…...
深入解析ISO/IEC 14443-4:非接触通信的“对话规则”与实战应用
1. 非接触通信的"对话规则"从何而来? 想象一下你第一次和外国朋友交流的场景:双方需要确认彼此能说哪种语言、用多大的声音说话、每次说完话要等多久再回应——这就是ISO/IEC 14443-4协议在非接触通信中扮演的角色。作为近场通信(N…...
Naftis社区贡献指南:如何参与这个开源Istio项目
Naftis社区贡献指南:如何参与这个开源Istio项目 【免费下载链接】naftis An awesome dashboard for Istio built with love. 项目地址: https://gitcode.com/gh_mirrors/na/naftis Naftis是一个基于Apache 2.0协议开源的Istio仪表板项目,专为简化…...
