优选算法_矩阵_多源BFS_C++

张开发
2026/4/4 19:38:50 15 分钟阅读
优选算法_矩阵_多源BFS_C++
一.题目解析算法讲解:二.代码编写:class Solution { int m,n; int dx[4] {-1,1,0,0}; // 上下 int dy[4] {0,0,-1,1}; // 左右 public: vectorvectorint updateMatrix(vectorvectorint mat) { mmat.size(),nmat[0].size(); vectorvectorintdist(m,vectorint(n,-1)); queuepairint,intq; //多源入队 for(int i0;im;i) { for(int j0;jn;j) { if(mat[i][j]0) { dist[i][j]0; q.push({i,j}); } } } //一层一层向外扩 while(q.size()) { auto [a,b]q.front(); q.pop(); for(int i0;i4;i) { int xadx[i],ybdy[i]; if(x0xmy0yndist[x][y]-1) { dist[x][y]dist[a][b]1; q.push({x,y}); } } } return dist; } };

更多文章