Python3實現從排序陣列中刪除重複項演算法分析

2022-10-04 17:48:12 字數 1162 閱讀 4606

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

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

方案一:利用set()快速剔除重複元素。 效率最高

# -*- coding:utf-8 -*-

#! python3

def removeduclicates(nums):

nums[:] = sorted(set(nums))

return len(

#程式設計客棧測試

arr1 = [1,1,2,3,4,5,5,6]

print(removedu

執行結果:

方案二:雙指標法。 效率次之

# -*- coding:utf-8 -*-

#! python3

def removeduplicates(nums):

if not nums:

return 0

j = 0

for i in range(1, len(nums)):

if nums[j] != nums[i]:

j += 1

nums[j] = nums[i

return j + 1

#測試arr1 = [1,1,2,3,4,5,5,6]

print(removeduplicates(arr1))

執行結果:

方案三:利用remove()方法。 效率次之

# -*- coding:utf-8 -*-

#! python3

def removeduplicates(nums):

i = 0

while i < len(nums) - 1:

if nums[i] == nums[i + 1]:

nums.remove(nums[i])

else:

i += 1

return len(nums)

#測試arr1 = [1,1,2,3,4,5,5,6]

print(removeduplicates(arr1))

執行結果:

ps:本站還有兩款比較簡單實用的**文字去重複工具,推薦給大家使用:

**去除重複項工具:

**文字去重複工具:

Python3實現從排序陣列中刪除重複項演算法分析

題目 給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。方案一 利用set 快速剔除重複元素。效率最高 coding utf 8 python3 def remov...

Python3實現從檔案中讀取指定行的方法

from python的標準庫linecache模組非常適合這個任務 import linecache the line linecache.getline d freakout.cpp 222 print the line linecache讀取並快取檔案中所有的文字,若檔案很大,而唯讀一行,則效...

Python3實現從檔案中讀取指定行的方法

python的標準庫linecache模組非常適合這個任務 import linecache the line linecache.getline d freakout.cpwww.cppcns.comp 222 print the line linecache讀取並www.cppcns.com快取...