马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 jerryxjr1220 于 2017-2-7 11:26 编辑
之前已经有好多帖子讨论过“迷宫问题”了,解法也各有千秋。
今天闲来无事又琢磨了一种“字典+递归的回溯算法”(深度优先搜索算法),供大家参考。
解题思路:
利用字典把所有可能的路径列出来,利用递归算法逐层从字典中把路径找出来。
其他的看注解吧,写得很详细了。
举例:
迷宫为:(0为墙,1为路,起始(0,0),终点(3,5))
- maze = [
- #start (0,0)
- [1 ,0, 1, 0, 0, 0],
- [1, 1, 1, 1, 0, 1],
- [0, 0, 1, 0, 1, 0],
- [1, 0, 1, 0, 1, 1],#End (3,5)
- [1, 1, 1, 1, 1, 1],
- [0, 1, 0, 1, 0, 0],
- [0, 1, 0, 1, 1, 1]]
复制代码
程序输出:(正确路径用“8”标记出来了)
- Done!
- The right way marked "8"!
- [8, 0, 1, 0, 0, 0]
- [8, 8, 8, 1, 0, 1]
- [0, 0, 8, 0, 1, 0]
- [1, 0, 8, 0, 1, 8]
- [1, 1, 8, 8, 8, 8]
- [0, 1, 0, 1, 0, 0]
- [0, 1, 0, 1, 1, 1]
- [Finished in 0.2s]
复制代码
源代码:
另外一种探索解法(广度优先搜索算法):
|