1、创建向量数组
在全局中我们可以定义向量数组来表示下一步的方向。
例如:
int dx = [0, 0, 1, -1];
int dy = [1, -1, 0, 0];
之后我们想枚举出下一步位置就可以用for循环
for(int i = 0; i < 4; i++)
{
X = x + dx[i];
Y = y + dy[i];
}
2、BFS核心思想(个人理解)
创建队列之后,入队一个头,由这个头带动周围符合要求节点入队,具体队列中的实现就是队头出队,队头节点有关的合法节点就同时入队,这就可以做到把全部符合要求的节点枚举出来。
3、例题
4、易错总结
要入队的时候就标记已经走过的节点,不然队列后面的节点还未出队,没有被标记又要重新入队,就会导致节点的重复入队最后超时。