题解 | #迷宫问题#
迷宫问题
http://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
15行代码过80%+,还有一点小瑕疵等我下次再找
let n=readline().split(' ').map(Number),maze=[]//读数据
while(line=readline()) maze.push(line.split(' ').map(Number))
function find(i,j,road){
road.push([i,j]);//先推入0,0
maze[i][j]=1;
if(i==n[0]-1 && j==n[1]-1){
for (let i of road) print(`(${i[0]},${i[1]})`);
}
if(j+1<n[1] && maze[i][j+1]==0) find(i,j+1,road)//右
if(i+1<n[0] && maze[i+1][j]==0) find(i+1,j,road)//下
if(j-1 >= 0 && maze[i][j-1]==0) find(i,j-1,road)//左
if(i-1 >= 0 && maze[i-1][j]==0) find(i-1,j,road)//上
}
find(0,0,[])
递归调用,每次判断上下左右四方向;
走过路径标记为1,直到最终到达终点
借鉴隔壁python解法:题解 | #迷宫问题#