#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
struct Node {
int x;
int y;
};
class Solution {
public:
vector<Node> shortestPathBinaryMatrix(vector<vector<int>>& grid) {
int ans = 0;
queue<Node> myQ; // BFS一般通过队列方式解决
int M = grid.size();
int N = grid[0].size();
vector<Node> ret;
// 先判断边界条件,很明显,这两种情况下都是不能到达终点的。
if (grid[0][0] == 1 || grid[M - 1][N - 1] == 1) {
return ret;
}
// 记录已经走过的节点的上一个节点
vector<vector<Node>> mem(M, vector<Node>(N, {-1,-1}));
myQ.push({0, 0});
mem[0][0] = {-2,-2};
// 以下是标准BFS的写法
while (!myQ.empty()) {
int size = myQ.size();
for (int i = 0; i < size; i++) {
Node currentNode &
BFS寻路算法 c++
最新推荐文章于 2024-05-13 04:58:52 发布