文章来源:https://www.toymoban.com/news/detail-809756.html
代码文章来源地址https://www.toymoban.com/news/detail-809756.html
#include<bits/stdc++.h>
using namespace std;
char a[51][51];
int r,c;
int fx[4]={0,0,1,-1};
int fy[4]={1,-1,0,0};
int tx,ty;
struct Node{
int x,y,step;
};
int bfs(int x,int y){
a[x][y]='#';
queue<Node> q;
q.push({x,y,1});
while(!q.empty()){
Node Current=q.front();
q.pop();
if(Current.x==r&&Current.y==c){
return Current.step;
}
for(int i=0;i<4;++i){
tx=Current.x+fx[i];
ty=Current.y+fy[i];
if(a[tx][ty]=='.'){
a[tx][ty]='#';
q.push({tx,ty,Current.step+1});
}
}
}
return -1;
}
int main(){
cin>>r>>c;
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
cin>>a[i][j];
}
}
cout<<bfs(1,1);
return 0;
}
到了这里,关于1432 - 走出迷宫的最少步数-广度优先搜索BFS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!