迷宫问题多数解法都是使用递归,但递归对于算法还是有要求的,如果
时间复杂度不是O(log n)那么还是不建议使用
因为当问题规模较大时,每次递归无法将规模指数级缩减
那么总递归次数就会很多,会有爆栈的风险
例如
def fn(x):
if x == 1:
return 1
return fn(x - 1) * x
fn(1000)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in fn
File "<stdin>", line 4, in fn
File "<stdin>", line 4, in fn
[Previous line repeated 995 more times]
File "<stdin>", line 2, in fn
RecursionError: maximum recursion depth exceeded in comparison
所以,能用循环解决的还是用循环吧
迷宫问题的使用循环的解法
# 设置一个迷宫,1代表可走,0代表不可走
mig = [
[0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 1, 1, 0],
[0, 1, 1,