題目:給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 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快取...