最近、小紅書のインターンシップ面接に参加しましたが、とても簡単でした。データ構造について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