版权声明:本文为博主原创文章,转载需要注明源地址 https://blog.csdn.net/qq_33512078/article/details/79322018
今日在leetcode刷题的过程中,出现了代码逻辑无误,但超过递归最大深度。
分析数据得出,有一组数据会出现递归1W次的情况,而python对于最大递归深度是有限制的
python最大递归深度限制可以查询:
import sys
sys.getrecursionlimit() # output:1000
由上述代码可以发现,python的最大递归深度被限制为了1000
但是实际使用中,可能会出现未达到1000就报错的情况,如下例代码:
>>> def recursion(n):
print n
recursion(n+1)
>>> recursion(0) # 输出最大到972(python2.7.14) or 977(python 3.6.3)
def recursion(n):
if(n <= 0):
return
print n
recursion(n - 1)
if __name__ == "__main__":
recursion(1000) # 输出最大到998(python2.7.14)
具体修改最大递归深度的函数百度上很容易找到,这就不写了,但是递归太深其实是很占系统资源的,还是建议改成循环处理吧