一.题目解析算法讲解:BFS边权为1的路径问题(边权为1就是点和点之间是距离为1的)层序遍历的基础:二.代码编写:class Solution { int dx[4]{0,0,1,-1}; int dy[4]{1,-1,0,0}; int vis[101][101]; int m,n; public: int nearestExit(vectorvectorchar maze, vectorint entrance) { memset(vis,false,sizeof(vis));//初始化判断数组 mmaze.size(),nmaze[0].size(); queuepairint,intq;//队列实现层序遍历 q.push({entrance[0],entrance[1]}); vis[entrance[0]][entrance[1]]true; int step0; while(!q.empty()) { step; int szq.size(); for(int j0;jsz;j)//一层一层向外扩展 { auto [a,b]q.front(); q.pop(); for(int i0;i4;i) { int xadx[i],ybdy[i]; if(x0xmy0ynmaze[x][y].vis[x][y]false) { if(x0||xm-1||y0||yn-1)return step;//到达边界就是到达终点 q.push({x,y}); vis[x][y]true; } } } } return -1;//一开始就是边界,返回-1 } };