排序陣列去重

2021-10-06 07:42:05 字數 827 閱讀 8402

給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。

不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o(1) 額外空間的條件下完成。

給定陣列 nums = [1,1,2],

函式應該返回新的長度 2, 並且原陣列 nums 的前兩個元素被修改為 1, 2。

你不需要考慮陣列中超出新長度後面的元素。

給定 nums = [0,0,1,1,1,2,2,3,3,4],

函式應該返回新的長度 5, 並且原陣列 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

你不需要考慮陣列中超出新長度後面的元素。

**:分析:將第start=0個數字和(1,len(num))比較。

原陣列:nums = [0,0,1,1,1,2,2,3,3,4]

去重後:nums = [0,1,2,3,4,2,2,3,3,4]

輸出:num[0,start+1]

def romovenum(lis):

m=len(lis)

if m<2:

return lis

start=0

for i in range(1,m):

if lis[i]!=start:

lis[start+1]=lis[i]

start+=1

return lis[:start+1]

if __name__ == "__main__":

lis=[0,0,1,1,1,2,2,3,3,4]

print(romovenum(lis))

結果:

氣泡排序 陣列去重

陣列去重 第一種splice方法 function quchong var elements 2,2,5,3,6,6,7,8 console.log before elements 2,2,5,3,6,6,7,8 quchong elements console.log after elements...

氣泡排序 選擇排序 陣列去重

遍歷所有元素 從小到大排序 依次比較相鄰的兩個元素 小的放前面,大的放後面 效率很低 動態圖如下所示 示例 var arr 10 18,1 6,9 20,7 90 for var i 0 i arr.length 1 i console.log arr 執行結果如下 先找到所有元素中的最小值,然後將...

氣泡排序,選擇排序,陣列去重

首先定義乙個陣列 var arr 1,3,5,2,4,6 原理 相鄰的兩個數字依次對比,若前者大交則換位置,並且重複操作,直到所有數字依次排好序。程式的優化 1,內層迴圈優化1 內層迴圈次數 1 當前位和下一位比較 i 和 i 1 比較 當前迴圈的倒數第二位,已經和最後一位進行比較 當前迴圈的最後一...