动态数组运行时错误 - 代码有效但不适用于大输入值 |如何解决?

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的值(其中sizeseq的大小)并赋值给

所以使用索引你得到的序列将是一个列表,但是然后你被要求在列表中找到他在位置 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