我试图设置一个整数数组,其大小为10000。你知道吗
但是,如果数组a
的长度小于1995,那么代码就非常有效。
如果我把它改成2000或更多,程序就会停止工作。你知道吗
如果我将数组a
的大小设置为10000,我希望这段代码能够工作。
下面是Python代码:
import random
random.seed()
a = [random.randint(-1000, 1000) for i in range(10000)]
DP = [[] for i in a]
seq = []
def solveDP(i):
global DP
if i >= len(a):
return []
if len(DP[i]) > 0:
return DP[i]
arr1 = [a[i]] + solveDP(i + 2)
arr2 = solveDP(i + 1)
if sum(arr1) > sum(arr2):
DP[i] = arr1[:] # Copy arr1 into DP[i]
else:
DP[i] = arr2[:] # Copy arr2 into DP[i]
return DP[i]
print(solveDP(0))
问题不在于数组长度,而在于递归调用
solveDP
。我反复使用了您的代码,大约在5980时,我收到以下错误消息:粗线让我搜索了一下,找到了this source。根据答案
在我看来,递归调用一个函数的次数太多了,以至于填满了机器的堆栈。你知道吗
相关问题 更多 >
编程相关推荐