python递归深度问题

版权声明:本文为博主原创文章,转载需要注明源地址 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)

具体修改最大递归深度的函数百度上很容易找到,这就不写了,但是递归太深其实是很占系统资源的,还是建议改成循环处理吧

猜你喜欢

转载自blog.csdn.net/qq_33512078/article/details/79322018