DFS算法原理及其模板

DFS------深度优先遍历,与BFS有极大的相似性,代码模板也是如此,我们这里给出BFS的讲解回来再看DFS就简单的多了,而且DFS代码写起来比BFS更简洁。

BFS算法讲解https://blog.csdn.net/czt230610/article/details/151409412?fromshare=blogdetail&sharetype=blogdetail&sharerId=151409412&sharerefer=PC&sharesource=czt230610&sharefrom=from_link与BFS不同的是,DFS是在某一点处采取一条路走到黑直到不能走下去再返回,而BFS是到某一点时先把该的周围走一遍然后以这些点为起点重复此操作。此外,DFS用到了递归思想(可以借助二叉树遍历思想理解)

这里直接给出DFS模板

cpp 复制代码
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
void dfs(...,int i,int j)//...通常为题目给出的矩阵等结构
{
   
       ...[i][j]=... //遍历后的标记/修改
    
      for(int k=0;k<4;k++)
       {
         int x=i+dx[k],y=j+dy[k];
         if(x>=0&&x<m&&y>=0&&y<n&&...[x][y]==...//满足的条件)//m,n为数组的长度宽度
         {
            bfs(...,x,y);
         }
       }
     
  
}
相关推荐
小羊在睡觉12 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
3DVisionary12 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解
人工智能·算法·制造·蓝光三维扫描·医疗制造·三维检测·义齿检测
好评笔记12 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_4684668512 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
_日拱一卒12 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
珂朵莉MM13 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索
人工智能·算法
Omics Pro14 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
voidmort14 小时前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
人道领域15 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
QiLinkOS15 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法