文章
19
粉丝
0
获赞
148
访问
4.9k
代码看不懂的做一下取舍,可以直接扔给deepseek让他给你讲,不懂的继续提问就可以。
首先要注意,你运用了方向向量int dir[4][2] = {0,1,0,-1,-1,0,1,0};就一定要注意边界问题,地图输入时应该从1开始,不然你的方向向量向四周进行bfs的时候会有数组越界的问题出现!
其次要注意与或非,我记得&&的优先级高于 || 所以if判断中要注意加括号。
这个题里面变量命名比较多,要注意直观,别把自己绕进去了。
代码:
#include<bits/stdc++.h>
using namespace std;
char mp[105][105];
bool vis[105][105];
int dir[4][2] = {0,1,0,-1,-1,0,1,0};
typedef struct Node{
int x,y;
int step;
}node;
int bfs(int xs,int ys){
memset(vis,0,sizeof(vis));
queue<node> q;
int ans = -1;
q.push({xs,ys,0});//起点入队
vis[xs][ys] = 1;// 起点标记
while(!q.empty()){
node now = q.front();
q.pop();
if(mp[now.x][now.y] == 'E'){//找到出口
ans = now.step;
&nbs...
登录后发布评论
暂无评论,来抢沙发