Python3實(shí)現(xiàn)從排序數(shù)組中刪除重復(fù)項(xiàng)算法分析
本文實(shí)例講述了Python3實(shí)現(xiàn)從排序數(shù)組中刪除重復(fù)項(xiàng)算法。分享給大家供大家參考,具體如下:
題目:給定一個(gè)排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個(gè)元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。
不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。
方案一:利用set()
快速剔除重復(fù)元素。 效率最高
# -*- coding:utf-8 -*- #! python3 def removeDuclicates(nums): nums[:] = sorted(set(nums)) return len(nums) #測(cè)試 arr1 = [1,1,2,3,4,5,5,6] print(removeDuclicates(arr1))
運(yùn)行結(jié)果:
6
方案二:雙指針法。 效率次之
# -*- 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 #測(cè)試 arr1 = [1,1,2,3,4,5,5,6] print(removeDuplicates(arr1))
運(yùn)行結(jié)果:
6
方案三:利用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) #測(cè)試 arr1 = [1,1,2,3,4,5,5,6] print(removeDuplicates(arr1))
運(yùn)行結(jié)果:
6
PS:本站還有兩款比較簡(jiǎn)單實(shí)用的在線文本去重復(fù)工具,推薦給大家使用:
在線去除重復(fù)項(xiàng)工具:
http://tools.jb51.net/code/quchong
在線文本去重復(fù)工具:
http://tools.jb51.net/aideddesign/txt_quchong
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python字典操作技巧匯總》、《Python字符串操作技巧匯總》、《Python常用遍歷技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解pandas使用drop_duplicates去除DataFrame重復(fù)項(xiàng)參數(shù)
這篇文章主要介紹了詳解pandas使用drop_duplicates去除DataFrame重復(fù)項(xiàng)參數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python利用matplotlib.pyplot繪圖時(shí)如何設(shè)置坐標(biāo)軸刻度
Matplotlib是Python提供的一個(gè)二維繪圖庫,所有類型的平面圖,包括直方圖、散點(diǎn)圖、折線圖、點(diǎn)圖、熱圖以及其他各種類型,都能由Python制作出來。本文主要介紹了關(guān)于Python利用matplotlib.pyplot繪圖時(shí)如何設(shè)置坐標(biāo)軸刻度的相關(guān)資料,需要的朋友可以參考下。2018-04-04Python內(nèi)置函數(shù)——__import__ 的使用方法
本篇文章主要介紹了Python內(nèi)置函數(shù)——__import__ 的使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11python3.6連接mysql數(shù)據(jù)庫及增刪改查操作詳解
這篇文章主要介紹了python3.6 連接mysql數(shù)據(jù)庫及增刪改查操作詳解,需要的朋友可以參考下2020-02-02python3實(shí)現(xiàn)基于用戶的協(xié)同過濾
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)基于用戶的協(xié)同過濾,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05基于Python實(shí)現(xiàn)開心消消樂小游戲的示例代碼
這篇文章主要是帶著大家自制一款開心消消樂,還原度超高哦~還在等什么動(dòng)動(dòng)手就能擁有屬于自己的”消消樂“小游戲呢,趕快學(xué)起來吧2022-05-05