如何修复最大递归深度超过没有导入sys



我正在尝试做一个递归问题,代码工作3出5次。2个失败的测试"在比较误差中超过了最大递归深度"。我尝试过导入sys方法,但我的笔记本电脑只能在堆栈溢出之前达到2000。2个失败的测试在n=8, m<=8和n>0, m=0时失败

这是我到目前为止所写的

import sys
sys.setrecursionlimit(1000)
def howManyGroups(n,m):
m = min(m, n)
if n == 0 or m == 1:
return 1
return howManyGroups(n, m - 1) + howManyGroups(n - m, m)

  1. 修复您的代码,因为代码将无限递归(可能在其他情况下也是如此)
  2. 停止在Python中编写深度递归代码,语言不是为此设计的,并且非常不高兴
  3. 切换到Python 3.11,它已经停止使用C堆栈用于Python调用堆栈,现在你可以在实现无限递归时消耗所有机器的内存

最新更新