python遞迴深度問題
阿新 • • 發佈:2019-01-13
今日在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)
具體修改最大遞迴深度的函式百度上很容易找到,這就不寫了,但是遞迴太深其實是很佔系統資源的,還是建議改成迴圈處理吧