![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bfs
有关宽度优先遍历的使用和方法总结
重剑DS
学的越多,越觉无知
展开
-
637. 二叉树的层平均值(C++)---BFS解题
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。提示:节点值的范围在32位有符号整数范围内。——题目难度:简单-解题代码class Solution {public: vector<...原创 2020-09-12 12:59:17 · 121 阅读 · 0 评论 -
111. 二叉树的最小深度(C++)--- 递归 / BFS解题
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.——题目难度:简单dfs解题代码/** * Definition for a binary tree node. * struct TreeNode { * ...原创 2020-08-21 08:38:35 · 244 阅读 · 0 评论 -
207. 课程表(C++)---图/ bfs/ 拓扑排序
题目详情你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出: ..原创 2020-08-04 09:50:39 · 261 阅读 · 0 评论 -
LCP 13. 寻宝(C++)---状态压缩 动态规划 + BFS
题目详情我们得到了一副藏宝图,藏宝图显示,在一个迷宫中存在着未被世人发现的宝藏。迷宫是一个二维矩阵,用一个字符串数组表示。它标识了唯一的入口(用 'S' 表示),和唯一的宝藏地点(用 'T' 表示)。但是,宝藏被一些隐蔽的机关保护了起来。在地图上有若干个机关点(用 'M' 表示),只有所有机关均被触发,才可以拿到宝藏。要保持机关的触发,需要把一个重石放在上面。迷宫中有若干个石堆(用 'O' 表示),每个石堆都有无限个足够触发机关的重石。但是由于石头太重,我们一次只能搬一个石头到指定地点。迷宫原创 2020-07-29 14:31:34 · 754 阅读 · 0 评论 -
104. 二叉树的最大深度(C++)---深度优先搜索(递归版) / 深度优先搜索(栈循环) / 宽度优先搜索(队列循环) 解题
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。——题目难度:简单DFS递归版 解题-dfs递归版 代码/** * Definition for a binary tree node. * struct Tree...原创 2020-07-28 09:40:15 · 153 阅读 · 0 评论 -
785. 判断二分图(C++)---DFS/ BFS 解题(包含介绍 自环边 和 平行边)
题目详情给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。示例 1:输入: [[1,3], [0,2], [1,原创 2020-07-16 11:12:24 · 1281 阅读 · 0 评论 -
5211. 概率最大的路径(C++)---广度优先搜索解题
题目详情给你一个由 n 个节点(下标从 0 开始)组成的无向加权图,该图由一个描述边的列表组成,其中 edges[i] = [a, b] 表示连接节点 a 和 b 的一条无向边,且该边遍历成功的概率为 succProb[i] 。指定两个节点分别作为起点 start 和终点 end ,请你找出从起点到终点成功概率最大的路径,并返回其成功概率。如果不存在从 start 到 end 的路径,请 返回 0 。只要答案与标准答案的误差不超过 1e-5 ,就会被视作正确答案。示例 1:输入:n.原创 2020-07-12 16:55:04 · 446 阅读 · 0 评论 -
210. 课程表 II(C++)--- 图/ bfs/ 拓扑排序
题目详情现在你总共有 n 门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例1:输入: 2, [[1,0]]输出: [0,1]解释:总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为...原创 2020-07-12 15:21:28 · 266 阅读 · 0 评论 -
297. 二叉树的序列化与反序列化(C++)
题目详情序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例:你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 "[1,2,...原创 2020-06-16 11:46:52 · 757 阅读 · 0 评论 -
542. 01 矩阵(C++)---宽度优先搜索解题
题目详情给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000。 给定矩阵中至少有一个元素是 0。 矩阵中的元素只在四个方向上相邻: 上、下、左、右。——题目难度:中等思路如下图:.原创 2020-06-15 11:06:29 · 374 阅读 · 0 评论 -
102. 二叉树的层序遍历(C++)---BFS(宽度优先搜索)
题目详情给你一个二叉树,请你返回其按层序遍历得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]——题目难度:中等-使用宽搜的思路,用队列和vector容器即可解决这题,下面代码class Solution {public: vec..原创 2020-05-13 08:46:53 · 395 阅读 · 0 评论 -
199. 二叉树的右视图(C++)---BFS解题
前言 BFS,其英文全称是Breadth First Search。 BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。目的是系统地展开并检查图中的所有节点,以找寻结果。题目详情给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]...原创 2020-04-22 20:17:06 · 253 阅读 · 0 评论 -
两种常见的全排列形式(C++)---含DFS全排列 和 使用库函数排列
目录1.一般的全排列方式2.DFS(Depth-First-Search)---深度优先搜索 全排列方式·BFS(Breadth First Search)---宽度优先搜索以**例题**的形式来说明下两种常见的全排列方式(均使用递归版)1.一般的全排列方式题目详情编写递归函数,显示n个数字的全排列。编写主函数,输入非负整数n,调用函数显示全排列。输入格...原创 2020-04-22 20:27:15 · 1104 阅读 · 0 评论 -
宽度优先遍历(Breadth-First Search, BFS)
BFS,其英文全称是Breadth First Search。 BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。目的是系统地展开并检查图中的所有节点,以找寻结果。...原创 2020-06-14 15:42:46 · 1353 阅读 · 0 评论