我在尝试运行我的代码时遇到了这个错误。如果你知道我如何改变它,请告诉我!两三步...
Failed test #2 of 11. Runtime error
Error:
Traceback (most recent call last):
File "jailed_code", line 30, in <module>
for j in num:
File "jailed_code", line 5, in aP
a = [1]*n
MemoryError
def aP(n):
a = [1]*n
y = -1
v = n
while v > 0:
v -= 1
x = a[v] + 1
while y >= 2 * x:
a[v] = x
y -= x
v += 1
w = v + 1
while x <= y:
a[v] = x
a[w] = y
yield a[:w + 1]
x += 1
y -= 1
a[v] = x + y
y = a[v] - 1
yield a[:w]
lst = []
res = []
input = input().split(' ')
for i in input:
num = aP(int(i))
for j in num:
if len(j) == 3:
lst.append(j)
res.append(len(lst))
lst = []
res = str(res).replace(',', '')
print(res[1:-1])
你的代码到底是做什么的?
看起来 O(n^3) - O(n^4) 的复杂度就在那里,非常糟糕,所以你需要知道任务才能给出一些建议
顺便说一句,您的代码可以稍微简化
解决方案:
对于此任务,您的代码过于复杂。
这是一个不吃内存并且比你的工作速度快几个数量级的代码