动态数组运行时错误-代码有效,但不适用于较大的输入值|怎么解决?

这是我编写的代码,似乎可以正常工作,但是当我检查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尚未运行的。有什么我想念的吗?

hyowinner 回答:动态数组运行时错误-代码有效,但不适用于较大的输入值|怎么解决?

您的答案很接近,但您误解了查询2中的操作

y % size中找到元素seq的值(其中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
本文链接:https://www.f2er.com/3055856.html

大家都在问