题解 | #迷宫问题#Python解法一看就懂

迷宫问题

http://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc

def get_path(pos, matrix):
i, j = pos[0], pos[1]
n, m = len(matrix), len(matrix[0])
if not 0 <= i < n or not 0 <= j < m or not matrix[i][j] == 0: return
global cur_path, res
cur_path.append((i, j))
if i == n - 1 and j == m - 1: #到达终点
if not res or len(cur_path) < len(res): #若res为空或cur_path比res短
res = list(cur_path)
return
matrix[i][j] = 1
get_path([i + 1, j], matrix)
get_path([i - 1, j], matrix)
get_path([i, j + 1], matrix)
get_path([i, j - 1], matrix)
matrix[i][j] = 0
cur_path.pop()

while True:
try:
N, M = map(int, input().split())
matrix = []
for _ in range(N):
matrix.append(list(map(int, input().split())))
cur_path, res = [], []
get_path([0,0], matrix)
#print(res)
for pos in res:
print('({},{})'.format(pos[0], pos[1])) #要输出成字符形式
except:
break

全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务