刪除重複數字

2021-10-02 04:23:34 字數 767 閱讀 9640

#給定乙個排序陣列,刪除重複出現的元素(只能保留此元素的乙個),這樣新的陣列中每個元素只出現一次,並返回這個新陣列的長度。

解法一:時間+空間複雜度都是0(n)

def

removeduplicates

(alist):if

not alist:

return

0 result=

for i in alist:

if i is

notin result:

: n=

len(result)

return n

解法二:時間複雜度為o(n),空間複雜度為o(1)

在同乙個陣列的基礎上使用滑動視窗,替換來做。

def

removeduplicates

(alist):if

not alist:

return

0 i =

0 n =

len(alist)

#j要從第二個元素開始和第乙個元素進行比較,i是用來維持刪除後的陣列指標。

for j in

range(1

,n):

if alist[i]

!= alist[j]

: i+=

1 alist[i]

=alist[j]

else

:continue

return i+

1

LC 有序陣列刪除重複數字

給定乙個已排序的陣列,使用就地演算法將重複的數字移除,使陣列中的每個元素只出現一次,返回新陣列的長度。不能為陣列分配額外的空間,你必須使用常熟級空間複雜度的就地演算法。例如,給定輸入陣列 a 1,1,2 你給出的函式應該返回length 2,a陣列現在是 1,2 include using name...

LC 有序陣列刪除重複數字

給定乙個已排序的陣列,使用就地演算法將重複的數字移除,使陣列中的每個元素只出現一次,返回新陣列的長度。不能為陣列分配額外的空間,你必須使用常熟級空間複雜度的就地演算法。例如,給定輸入陣列 a 1,1,2 你給出的函式應該返回length 2,a陣列現在是 1,2 include using name...

刪除重複資料

介紹兩種刪除重複行的方式 1.使用臨時表,分組找出重複部分的id進行刪除 刪除table goods info 中存在重複goods id的記錄 select identity int,1,1 as autoid,into temptable from goods info select min a...