Xiaohongshu Computer Vision Intern 2:配列内の一意の番号を返すため、スペースの複雑さはO(1)である必要があります。

最近、小紅書のインターンシップ面接に参加しましたが、とても簡単でした。データ構造について3つの質問をした後、コンテストとプロジェクトについて質問しました。同時に、答えは大丈夫でした。それから昨日、 2つの質問があり、競争について質問し、それについて質問しました。深層学習の基本的な知識のいくつかは、答えは大丈夫でした、そして最後にそのようなアルゴリズムの質問がありましたが、私はそれを理解できず、終わりました。ねえ、私
はポップとリムーブのスペースの複雑さを知らないだけですが、それは考え方でもあります。面接官からダブルポインター方式を使うように言われましたが、その時は少し戸惑い、やり方がわかりませんでした。

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

おすすめ

転載: blog.csdn.net/AWhiteDongDong/article/details/111726867