动态数组运行时错误 - 代码有效但不适用于大输入值 |如何解决?
Dynamic Array Runtime Error - code working but not for large input values | How to resolve?
这是我编写的代码,看起来它可以正常工作,但是当我检查 Hackerrank 以使用大量测试用例进行测试时 - 它给了我一个运行时错误。
我该如何优化这段代码?
def dynamicArray(n, queries):
lastAnswer = 0
seq = []
result = []
for k in range(0, n):
seq.append([])
for i in queries:
N_querytype = i[0] #it can be either 1 or 2
x = i[1]
y = i[2]
index = (x ^ lastAnswer) % n
if(N_querytype == 1):
seq[index].append(y)
elif(N_querytype == 2):
lastAnswer = seq[index][y]
result.append(lastAnswer)
return result
这是 test-case 而不是 运行。有什么我想念的吗?
您的答案很接近,但您误解了查询 2 中的操作
在seq
中找到元素y % size
的值(其中size
是seq
的大小)并赋值给
所以使用索引你得到的序列将是一个列表,但是然后你被要求在列表中找到他在位置 y % size
索引的值,其中 size = len(seq[index])
def dynamicArray(n, queries):
lastAnswer = 0
seq = []
result = []
for k in range(0, n):
seq.append([])
for i in queries:
N_querytype = i[0] #it can be either 1 or 2
x = i[1]
y = i[2]
index = (x ^ lastAnswer) % n
print("#", index, y)
if(N_querytype == 1):
seq[index].append(y)
elif(N_querytype == 2):
size = len(seq[index]) #Calculate the size of the sequnce at this index
lastAnswer = seq[index][y % size] #look up the value in this sequence at index y % size
result.append(lastAnswer)
return result
这是我编写的代码,看起来它可以正常工作,但是当我检查 Hackerrank 以使用大量测试用例进行测试时 - 它给了我一个运行时错误。 我该如何优化这段代码?
def dynamicArray(n, queries):
lastAnswer = 0
seq = []
result = []
for k in range(0, n):
seq.append([])
for i in queries:
N_querytype = i[0] #it can be either 1 or 2
x = i[1]
y = i[2]
index = (x ^ lastAnswer) % n
if(N_querytype == 1):
seq[index].append(y)
elif(N_querytype == 2):
lastAnswer = seq[index][y]
result.append(lastAnswer)
return result
这是 test-case 而不是 运行。有什么我想念的吗?
您的答案很接近,但您误解了查询 2 中的操作
在seq
中找到元素y % size
的值(其中size
是seq
的大小)并赋值给
所以使用索引你得到的序列将是一个列表,但是然后你被要求在列表中找到他在位置 y % size
索引的值,其中 size = len(seq[index])
def dynamicArray(n, queries):
lastAnswer = 0
seq = []
result = []
for k in range(0, n):
seq.append([])
for i in queries:
N_querytype = i[0] #it can be either 1 or 2
x = i[1]
y = i[2]
index = (x ^ lastAnswer) % n
print("#", index, y)
if(N_querytype == 1):
seq[index].append(y)
elif(N_querytype == 2):
size = len(seq[index]) #Calculate the size of the sequnce at this index
lastAnswer = seq[index][y % size] #look up the value in this sequence at index y % size
result.append(lastAnswer)
return result