1091. 二进制矩阵中的最短路径 bfs_c++
2021/11/13 17:11:08
本文主要是介绍1091. 二进制矩阵中的最短路径 bfs_c++,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1091. 二进制矩阵中的最短路径
上代码
class Solution { public: int bfs(vector<vector<int>>& grid) { queue<pair<int,int>> q; int step=1; if(grid.size()==1) return 1; q.push(make_pair(0,0)); int dx[]={0,0,1,1,-1,-1,1,-1}; int dy[]={1,-1,1,-1,-1,1,0,0}; while(!q.empty()) { int n=q.size(); step++; for(int j=0;j<n;j++) { int x=q.front().first; int y=q.front().second; q.pop(); // cout<<x<<' '<<y; for(int i=0;i<8;i++) { int nx=x+dx[i]; int ny=y+dy[i]; if(nx<0||ny<0||nx>=grid.size()||ny>=grid.size()) continue; if(nx==grid.size()-1&&ny==grid.size()-1&&grid[nx][ny]==0) { return step; break; } else if(grid[nx][ny]==0) { grid[nx][ny]=1; q.push(make_pair(nx,ny)); } } } } return -1; } int shortestPathBinaryMatrix(vector<vector<int>>& grid) { if(grid.empty()) return -1; if(grid[0][0] == 1 || grid[grid.size()-1][grid.size()-1] == 1) return -1; return bfs(grid); } };
提交情况
这篇关于1091. 二进制矩阵中的最短路径 bfs_c++的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Excel中实现拖动排序的简单教程
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程
- 2024-11-27初学者指南:深入了解RocketMQ源码资料
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解