搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
知新_RL
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
车机互联软件下载地址【苹果carplay、百度carlife、carlink、亿连jovincar】_五菱缤果车载市场carlink提取包
2
Github不再支持密码验证的方式进行git操作_github代码推送不能使用密码验证了吗
3
寻路算法——A*算法_菱形格子 怎么寻路
4
python:关于在python虚拟环境已安装django-redis但在项目中引入时仍报错找不到modules的问题_python django-redis prefix 加不上
5
python 把if 写在一行的两种方式_python怎样把if语句写成一行
6
计算机考研深圳大学和广东工业大学,报考人数过万!这些院校已成为考研“重灾区”...
7
Android Wifi 四次握手日志分析_eapol: supplicant port status: unauthorized
8
FPGA_ZYNQ (PS端)开发流程(Xilinx软件工具介绍)
9
Node.js-Nodejs操作mongodb数据库_分析node.jsmongodb数据库操作
10
超简快速部署K8S集群_集群发布服务怎么快捷方便
当前位置:
article
> 正文
队列 + 宽搜(BFS)
作者:知新_RL | 2024-07-01 16:31:10
赞
踩
队列 + 宽搜(BFS)
例题一
解法:
算法思路:
层序遍历即可~ 仅需多加⼀个变量,⽤来记录每⼀层结点的个数就好了。
例题二
解法(层序遍历):
算法思路:
在正常的层序遍历过程中,我们是可以把⼀层的结点放在⼀个数组中去的。既然我们有这个数组,在合适的层数逆序就可以得到锯⻮形层序遍历的结果。
例题三
解法(层序遍历):
算法思路:
1.
第⼀种思路(会超过内存限制):
既然统计每⼀层的最⼤宽度,我们优先想到的就是利⽤层序遍历,把当前层的结点全部存在队列⾥
⾯,利⽤队列的⻓度来计算每⼀层的宽度,统计出最⼤的宽度。但是,由于空节点也是需要计算在内的。因此,我们可以选择将空节点也存在队列⾥⾯。这个思路是我们正常会想到的思路,但是极端境况下,最左边⼀条⻓链,最右边⼀条⻓链,我们需要存⼏亿个空节点,会超过最⼤内存限制。
2.
第⼆种思路(利⽤⼆叉树的顺序存储 - 通过根节点的下标,计算左右孩⼦的下标):
依旧是利⽤层序遍历,但是这⼀次队列⾥⾯不单单存结点信息,并且还存储当前结点如果在数组中存储所对应的下标(在我们学习数据结构 - 堆的时候,计算左右孩⼦的⽅式)。这样我们计算每⼀层宽度的时候,⽆需考虑空节点,只需将当层结点的左右结点的下标相减再加 1
即可。
但是,这⾥有个细节问题:如果⼆叉树的层数⾮常恐怖的话,我们任何⼀种数据类型都不能存下下标的值。但是没有问题,因为
•
我们数据的存储是⼀个环形的结构;
•
并且题⽬说明,数据的范围在
int
这个类型的最⼤值的范围之内,因此不会超出⼀圈;
•
因此,如果是求差值的话,我们⽆需考虑溢出的情况。
例题四
解法(bfs):
算法思路:
层序遍历过程中,在执⾏让下⼀层节点⼊队的时候,我们是可以在循环中统计出当前层结点的最⼤值的。因此,可以在 bfs 的过程中,统计出每⼀层结点的最⼤值。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/知新_RL/article/detail/777052
推荐阅读
article
目前好用的
VUE
前端
框架
开源
项目
分享...
目前好用的
VUE
前端
框架
开源
项目
分享Vue element admin - 老牌 admin 后台管理 求稳首选Antd...
赞
踩
article
2024最新华为OD机试试题库全 -【
m>局域网
m>
m>中
m>
m>的
m>
m>服务器
m>个数】- C卷_
在
一个
机房
m>中
m>
m>,
m>
m>服务器
m>
m>的
m>位置标识...
在
一个
机房
m>中
m>,
m>服务器
m>
m>的
m>位置标识
在
m>n
m>*
m
m>的
m>整数矩阵网格
m>中
m>,
1
表示
m>单元格
m>上有
m>服务器
m>,0 表示没有。如果两台
m>服务器
m>位于同...
赞
踩
article
Docker
笔记3 | 在
Ubuntu
下
安装
Docker
_
docker
下
载
ubuntu
...
【代码】
Docker
笔记3 | 在
Ubuntu
下
安装
Docker
。_
docker
下
载
ubuntu
docker
下
载 ub...
赞
踩
article
10个
Python
爬虫
入门
实例
_
python
爬虫
代码简单例子
,
2024年最新
网络安全
中高级岗面试为...
response = requests.get( “http://www.zhihu.com” , headers=he...
赞
踩
article
window
版本
下载安装
kafka
和
ZooKeeper
并
调试
_
kafka
通信
调试
软件...
window
版本
下载安装
kafka
和
ZooKeeper
并
调试
,以及手把手springboot集成
kafka
_
kafka
通...
赞
踩
article
深度
学习
面试题
之
CNN
_
cnn
面试题
...
1、介绍下卷积操作的作用卷积网络中的卷积核参数是通过网络训练出来的通过卷积核的组合以及随着网络后续操作的进行,卷积操作可...
赞
踩
article
数字电路
课程
设计
-
logisim
-电子时钟_使用
logisim
设计
数字钟
...
采用Logisim软件,完成电子钟电路绘制及电子钟功能仿真调试_使用
logisim
设计
数字钟
使用
logisim
设计
数字钟
...
赞
踩
article
大
数据
集群
环境搭建详细步骤,涉及
zookeeper
,
hadoop
,
hive
,
hbase
,
kafka
_...
背景公司需要搭建一套大
数据
集群
环境用于测试,本文记录其详细过程,方便后面参考环境信息一主两从,均为ubuntu18.04...
赞
踩
article
Linux
系列知识详解(
一
)---------
Linux
简介及
常用
操作
Linux
的工具_
linux
...
前言:接下来的
一
段时间,我会陆续更新关于
Linux
操作
系统的相关内容,但正如博主的昵称所说那般,我只是站在巨人肩膀上的灯...
赞
踩
article
Java
基础——
学生
管理系统
_
学生
管理系统
java
基础...
学生
管理系统
学生
类
学生
管理类现象通过学习
Java
基础,采取循环,判断等语句来实现一个简单的
学生
管理系统
学生
类public...
赞
踩
article
133道
Java
面
试
题及
答案
(
面
试
必看)
,
2024年最新字节跳动后端技术
面
_
java
开发
面
试
题...
一个人可以走的很快
,
但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
,
都欢迎扫码加入我们的的...
赞
踩
article
华为
机试练习(五)
喊
7
的
次数
重排
...
题目描述
喊
7
是一个传统
的
聚会游戏,N个人围成一圈,按顺时针从1到N编号。编号为1
的
人从1开始
喊
数,下一个人
喊
的
数字为上一...
赞
踩
article
菜鸟
教程
_
Hbase
教程
菜鸟
教程
:
Hadoop
Hbase
入门简介...
在
Hadoop
系统框架当中,大家所熟知的HDFS是分布式文件系统,而
Hbase
才是数据存储的数据库,这两者之间的联系是非...
赞
踩
article
【漏洞复现】
海康
威视
综合安防
管理
平台
多处 FastJson反序列化RCE漏洞_
海康
威视
综合安防
管理
...
由于
海康
威视
综合安防
管理
平台
使用了低版本的fastison,不出网无法远程加载恶意类也可通过本地链直接命令执行,从而获取...
赞
踩
article
华为
OD
机试
-
执行
时
长(
Java
/
Python
/C++)_
华为
机试
gpu运行
时
间...
华为
OD
机试
-
执行
时
长(
Java
/
Python
/C++):为了充分发挥算力,需要尽可能多的将任务交给GPU
执行
,现在有一...
赞
踩
article
数据
结构
(
C语言版)——8、
树
_c语言什么
是
树
形
结构
...
8、
树
(
1)
树
的定义
树
形
结构
是
一类重要的非线性数据
结构
,其中以
树
和二叉
树
最为常用。直观的看,
树
是
以分支关系定义的层次
结构
...
赞
踩
article
SD
webui
手记_
module
no
tfounderror:
no
module
named
'...
注:出现 No
module
'xformers' 和 ModuleNotFoundError: No
module
n...
赞
踩
article
从
Neo4j
中
导出
CSV文件_
neo4j
导出
csv
...
导出
数据需要用到工具apoc,其安装过程也是十分简单。首先下载一个对应
Neo4j
版本的jar包,需要什么版本直接下载就好...
赞
踩
article
数据结构
需要
每个都
具体
实现
吗?...
大多数现代编程语言都有成熟的库或框架,提供了标准的
数据结构
实现
,如Python的内置数据类型列表、字典等,Java中的A...
赞
踩
article
Multisim14.0
仿真
应用设计(
一百二十七
)基于
74LS190
的60进制计数器应用设计
仿真
_m...
一、
仿真
原理图:二、
仿真
效果:_
multisim
中在哪
74ls190
multisim
中在哪
74ls190
...
赞
踩
相关标签
vue.js
开源框架
项目分享
华为od
服务器
java
python
c++
深度优先
广度优先
docker
ubuntu
爬虫
web安全
zookeeper
kafka
分布式
深度学习
卷积
课程设计
big data
hadoop
linux
面试
开发语言