二进制矩阵中最短畅通路径的长度 - BFS算法详解
思路:BFS
题目要求求最短路径,可以使用BFS进行求解。从左上角开始,依次遍历相邻的八个方向,如果下一个位置是0且没有被访问过,就将其加入队列中,同时记录路径长度加1。最终如果能够到达右下角,就返回路径长度,否则返回-1。
时间复杂度:O(n^2),每个位置最多被访问一次。
空间复杂度:O(n^2),需要一个n x n的visited数组来记录每个位置是否被访问过。同时需要一个队列来存储每个待访问的位置。
注意:在遍历相邻的八个方向时,需要注意边界条件,不能越界。
原文地址: https://www.cveoy.top/t/topic/fWKu 著作权归作者所有。请勿转载和采集!