这个例子是抛转隐喻, 介绍广度优先算法, 广度优先算法的应用很广泛, 所以, 先来看看规律
1. 分析如何进行广度优先探索
第一步, 我们先明确起点. 这个起点有上下左右四个方向可以探索....两种情况
第一种: 走到最后13的位置
第二种: 死路, 走到一个位置, 不能再走了. 如何判断呢?队列中没有可探索的点了, 探索结束
我们来总结一下:
1....但是go中的二维数组的含义是一位数组里的值又是一个数组.比如[][]int, 他是一个一维数组[]int, 里面的值又是一个一维数组.[]int....代码实现广度优先算法走迷宫
第一步: step代表从start开始, 走了多少步走到目标点, 最后的路径是通过这个创建出来的, 最后从后往前推就可以算出最短路径
第二步: 定义一个队列, 用来保存已经发现还未探索的点...定义每一行有多少列, 这样就定义了一个和迷宫一样的二维数组
step[i] = make([]int, len(maze[i]))
}
// 第二步: 定义一个队列,