Xiaohongshu Computer Vision Intern 2: Devuelve un número único en una matriz, lo que requiere una complejidad de espacio de O (1)

Recientemente participé en la entrevista de pasantía de Xiaohongshu. Por un lado, fue muy simple. Hice 3 preguntas sobre la estructura de datos. Luego pregunté sobre la competencia y el proyecto. Al mismo tiempo, la respuesta estuvo bien. Luego, ayer, Tenía 2 preguntas, pregunté sobre la competencia y pregunté al respecto. Algunos de los conocimientos básicos del aprendizaje profundo, la respuesta estuvo bien, y finalmente se hizo una pregunta de algoritmo, pero no la entendí, y sentí que se terminó. . . Oye,
simplemente no conozco la complejidad espacial de pop y remove, pero también es una forma de pensar. El entrevistador me dijo que usara el método de doble puntero, en ese momento estaba un poco confundido y no entendía cómo hacerlo. . . .

def unique(alist):
    index=0
    while index<len(alist):
        count=0
        mid_value=alist[index]#用mid_value保存临时的可能需要删除的值,因为下面的pop只是删除了数组后面的相同的值
        for j in range(len(alist)-1,index,-1):#逆序遍历
            if alist[j] == mid_value:
                alist.pop(j)
                count+=1
        if count !=0:
            alist.remove(mid_value)
        else:
            index+=1#注意这里,是只有count数等于0时才进行index的前移,count为0证明数组里这个数只出现了一次
    return alist

Supongo que te gusta

Origin blog.csdn.net/AWhiteDongDong/article/details/111726867
Recomendado
Clasificación