题目描述
这题应该是一个经典的BFS,一开始根本没有思路,看了题解,发现大佬们做的时候都是以“空格”为移动对象,于是我也这么做
定眼一看,二维数组嘛~但是跟着大佬走学了新的一招,将一维数组转成二维数组,将二维数组转成一维数组
一维转二维:xn = index//3,yn = index%3
二维转一维:index = xn * 3 + yn
步数怎么记录呢?用一个字典吧,每次走一步都在上一步加一,key就是“状态”
PS:这个题有地方很怪,至少我是看了案例才知道的,有一个案例是根本没有空格这个元素的,所以(至少)我用Python没有保证全过,作了一下弊,看了答案,写了个异常处理,姑且100分(不然会有一个无效返回的错误,87分)
代码实现
import collections
dir = [[0, 1], [1, 0], [0, -1], [-1, 0]] # 右下左上
dic = {
}