技术栈
深度优先搜索
北域码匠
2 天前
dfs
·
二叉树遍历
·
回溯算法
·
深度优先搜索
·
图论算法
·
面试算法
·
c# 算法
深度优先搜索算法(DFS)超全详解|原理+流程+性能分析+完整C#源码(无第三方库)
深度优先搜索(DFS)是图与树遍历的核心算法,也是暴力搜索与回溯算法的经典代表,广泛应用于算法竞赛、工程开发、人工智能及网络分析等领域。本文系统讲解DFS的历史背景、基本原理、执行流程、性能分析及适用场景,并提供两套原生C#实现方案(递归版与栈迭代版),涵盖树遍历、图遍历及路径查找等实战案例,所有代码均可直接运行。内容全面且精炼,适合零基础学习、面试备考与技术博客撰写,助力提升CSDN账号影响力。
txzrxz
3 天前
数据结构
·
c++
·
算法
·
图论
·
深度优先搜索
·
二分图染色
二分图详解
1. 起点染0:颜色0数量为cnt0,颜色1数量为cnt12. 起点染1:颜色0数量为cnt1,颜色1数量为cnt0 因此对于单个连通块:某集合最小节点数 = min(cnt0, cnt1),某集合最大节点数 = max(cnt0, cnt1),全局结果只需将所有连通块的对应值累加即可。
伟大的车尔尼
1 个月前
深度优先搜索
·
广度优先搜索
·
太平洋
·
大西洋
·
阅读理解
太平洋大西洋漂流记阅读理解
王富贵最初看到的悬赏令张贴在__________。(1 分) A. 小区公告栏 B. 小区电线杆 C. 码头小卖部 D. 外卖站点
伟大的车尔尼
2 个月前
深度优先搜索
·
广度优先搜索
搜索题目:使陆地分离的最少天数
标题:使陆地分离的最少天数出处:1568. 使陆地分离的最少天数8 级给定一个 m × n \texttt{m} \times \texttt{n} m×n 的二进制网格 grid \texttt{grid} grid,其中 1 \texttt{1} 1 代表陆地, 0 \texttt{0} 0 代表水域。岛屿是由相邻的 1 \texttt{1} 1 在水平方向或竖直方向上连接构成的最大组合。
伟大的车尔尼
2 个月前
深度优先搜索
·
广度优先搜索
搜索题目:隔离病毒
标题:隔离病毒出处:749. 隔离病毒8 级病毒在快速扩散,你的任务是通过安装防火墙隔离病毒。世界建模成 m × n \texttt{m} \times \texttt{n} m×n 的二维网格 isInfected \texttt{isInfected} isInfected 组成, isInfected[i][j] = 0 \texttt{isInfected[i][j]} = \texttt{0} isInfected[i][j]=0 表示未感染的单元格, isInfected[i][j] = 1
伟大的车尔尼
2 个月前
并查集
·
深度优先搜索
·
广度优先搜索
搜索题目:验证二叉树
标题:验证二叉树出处:1361. 验证二叉树6 级有 n \texttt{n} n 个二叉树结点,从 0 \texttt{0} 0 到 n − 1 \texttt{n} - \texttt{1} n−1 编号,其中结点 i \texttt{i} i 的两个子结点分别是 leftChild[i] \texttt{leftChild[i]} leftChild[i] 和 rightChild[i] \texttt{rightChild[i]} rightChild[i]。当且仅当所有结点形成恰好一个有效的二叉
伟大的车尔尼
3 个月前
并查集
·
深度优先搜索
·
广度优先搜索
搜索题目:可能的二分法
标题:可能的二分法出处:886. 可能的二分法5 级需要将一组 n \texttt{n} n 个人(编号从 1 \texttt{1} 1 到 n \texttt{n} n)分成任意大小的两组。每个人可能不喜欢其他的一些人,他们不应该属于同一组。
伟大的车尔尼
3 个月前
深度优先搜索
·
广度优先搜索
搜索题目:边界着色
标题:边界着色出处:1034. 边界着色5 级给定一个 m × n \texttt{m} \times \texttt{n} m×n 的整数矩阵 grid \texttt{grid} grid,以及三个整数 row \texttt{row} row、 col \texttt{col} col 和 color \texttt{color} color。网格中的每个值表示该位置处的网格块的颜色。
伟大的车尔尼
3 个月前
并查集
·
深度优先搜索
·
广度优先搜索
搜索题目:被围绕的区域
标题:被围绕的区域出处:130. 被围绕的区域5 级给定一个 m × n \texttt{m} \times \texttt{n} m×n 的包含 ‘X’ \texttt{`X'} ‘X’ 和 ‘O’ \texttt{`O'} ‘O’ 的矩阵 board \texttt{board} board,捕获在水平方向和竖直方向上被 ‘X’ \texttt{`X'} ‘X’ 围绕的全部区域。
Tisfy
3 个月前
算法
·
leetcode
·
dfs
·
题解
·
深度优先搜索
·
连通图
LeetCode 1722.执行交换操作后的最小汉明距离:连通图
力扣题目链接:https://leetcode.cn/problems/minimize-hamming-distance-after-swap-operations/
伟大的车尔尼
3 个月前
并查集
·
深度优先搜索
·
广度优先搜索
搜索题目:图像渲染
标题:图像渲染出处:733. 图像渲染4 级有一个图像以 m × n \texttt{m} \times \texttt{n} m×n 的整数网格 image \texttt{image} image 表示,其中 image[i][j] \texttt{image[i][j]} image[i][j] 表示该图像的像素值。
伟大的车尔尼
3 个月前
并查集
·
深度优先搜索
·
广度优先搜索
搜索题目:甲板上的战舰
标题:甲板上的战舰出处:419. 甲板上的战舰4 级给定一个 m × n \texttt{m} \times \texttt{n} m×n 的矩阵 board \texttt{board} board 表示甲板,其中每个单元格可以是战舰 ‘X’ \texttt{`X'} ‘X’ 或者是空位 ‘.’ \texttt{`.'} ‘.’,返回在 board \texttt{board} board 上放置的战舰的数量。
伟大的车尔尼
4 个月前
数据结构
·
算法
·
并查集
·
深度优先搜索
·
广度优先搜索
广度优先搜索和深度优先搜索的概念
广度优先搜索和深度优先搜索在树的遍历中已经简单介绍过,树的遍历基于这两种搜索算法。广度优先搜索和深度优先搜索的适用场景是广义的无权图,包括实际的图,也包括树和矩阵。无向图和有向图都可以使用广度优先搜索和深度优先搜索。
像素猎人
4 个月前
数据结构
·
c++
·
学习
·
dfs
·
bfs
·
深度优先搜索
以数据结构之——树来体会深度优先搜索【dfs】和广度优先搜索【bfs】的妙用:学比特算法课的自用笔记
目录声明:学比特算法课后的自用笔记。一、深度优先搜索算法就是一条路走到黑再回头,不撞南墙不回头。树中的dfs思想:
老鼠只爱大米
6 个月前
算法
·
leetcode
·
二叉树
·
dfs
·
bfs
·
深度优先搜索
·
右视图
LeetCode经典算法面试题 #199:二叉树的右视图(BFS双队列法、DFS递归法等多种实现方案详细解析)
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
Queenie_Charlie
6 个月前
c++
·
深度优先搜索
八皇后问题
在一个8×8的棋盘上放置8个皇后,并使它们相互不能攻击,即同一列、同一个对角线、同一行不能多于一个以上的皇后。求出所有的放置方案,例如,下图为一种放置方案。
老鼠只爱大米
6 个月前
算法
·
leetcode
·
二叉树
·
二叉树遍历
·
深度优先搜索
·
二叉树直径
LeetCode经典算法面试题 #543:二叉树的直径(深度优先搜索、迭代后续遍历等多种实现方案详细解析)
给你一棵二叉树的根节点,返回该树的 直径。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度。这条路径可能经过也可能不经过根节点 root。
老鼠只爱大米
6 个月前
算法
·
leetcode
·
二叉树
·
dfs
·
bfs
·
深度优先搜索
·
广度优先搜索
LeetCode经典算法面试题 #104:二叉树的最大深度(深度优先搜索、广度优先搜索等多种实现方案详细解析)
给定一个二叉树 root,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
KarrySmile
1 年前
矩阵
·
深度优先
·
dfs
·
深度优先搜索
·
灵茶山艾府
·
网格图
·
网格图dfs
网格图--Day04--网格图DFS--2684. 矩阵中移动的最大次数,1254. 统计封闭岛屿的数目,130. 被围绕的区域
今天要训练的题目类型是:【网格图DFS】,题单来自@灵茶山艾府。适用于需要计算连通块个数、大小的题目。
KarrySmile
1 年前
图论
·
深度优先搜索
·
广度优先搜索
·
深搜
·
广搜
·
岛屿数量
·
岛屿的最大面积
Day51--图论--99. 岛屿数量(卡码网),100. 岛屿的最大面积(卡码网)
本篇重点,在于理解深搜和广搜遍历顺序的不同,以及深搜广搜对应的坑点。给出了打印遍历顺序的代码,可以打印出来遍历点直观感受一下。