Python實(shí)現(xiàn)刪除排序數(shù)組中重復(fù)項(xiàng)的兩種方法示例
本文實(shí)例講述了Python實(shí)現(xiàn)刪除排序數(shù)組中重復(fù)項(xiàng)的兩種方法。分享給大家供大家參考,具體如下:
對(duì)于給定的有序數(shù)組nums,移除數(shù)組中存在的重復(fù)數(shù)字,確保每個(gè)數(shù)字只出現(xiàn)一次并返回新數(shù)組的長(zhǎng)度
注意:不能為新數(shù)組申請(qǐng)額外的空間,只允許申請(qǐng)O(1)的額外空間修改輸入數(shù)組
Example 1:
Given nums = [1,1,2],
Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
It doesn't matter what you leave beyond
Example 2:
Given nums = [0,0,1,1,1,2,2,3,3,4],Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively.
It doesn't matter what values are set beyond the returned length.
說(shuō)明:為什么返回列表長(zhǎng)度而不用返回列表?因?yàn)榱斜韨魅牒瘮?shù)是以引用的方式傳遞的,函數(shù)中對(duì)列表進(jìn)行的修改會(huì)被保留。
// nums is passed in by reference. (i.e., without making a copy) int len = removeDuplicates(nums); // any modification to nums in your function would be known by the caller. // using the length returned by your function, it prints the first len elements. for (int i = 0; i < len; i++) { print(nums[i]); }
1. 簡(jiǎn)單判斷列表中元素是否相等,相等就刪除多余元素
def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ if not nums: return 0 if len(nums)==1: #單獨(dú)判斷列表長(zhǎng)度為1的情況,因?yàn)橹蟮膄or循環(huán)從下標(biāo)1開(kāi)始 return 1 temp_num = nums[0] count =0 #for循環(huán)中動(dòng)態(tài)刪除列表元素,列表縮短,為了防止下標(biāo)溢出需要用count標(biāo)記刪除元素個(gè)數(shù) for index, num in enumerate(nums[1:]): if temp_num == num: #元素相等就刪除 del nums[index-count] count += 1 else: temp_num = num return len(nums) def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ forth = 0 back = 1 while back <= len(nums)-1: if nums[forth] == nums[back]: nums.pop(back) else: forth += 1 back += 1 return len(nums)
2. 修改數(shù)組,保證數(shù)組的前幾個(gè)數(shù)字互不相同,且這幾個(gè)數(shù)字的長(zhǎng)度同返回長(zhǎng)度相等
def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ if not nums: return 0 length = 0 #不存在重復(fù)數(shù)字的數(shù)組長(zhǎng)度 for index in range(1,len(nums)): #遍歷數(shù)組 if nums[index] != nums[length]: length += 1 nums[length] = nums[index] return length+1
算法題來(lái)自:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/
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)容可查看本站專(zhuān)題:《Python字典操作技巧匯總》、《Python字符串操作技巧匯總》、《Python常用遍歷技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python統(tǒng)計(jì)指定目錄內(nèi)文件的代碼行數(shù)
這篇文章主要介紹了python統(tǒng)計(jì)指定目錄內(nèi)文件的代碼行數(shù)2019-09-09python3 實(shí)現(xiàn)除法結(jié)果為整數(shù)
這篇文章主要介紹了python3 實(shí)現(xiàn)除法結(jié)果為整數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python爬蟲(chóng)爬取ts碎片視頻+驗(yàn)證碼登錄功能
這篇文章主要介紹了Python爬蟲(chóng)爬取ts碎片視頻+驗(yàn)證碼登錄功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02八個(gè)超級(jí)好用的Python自動(dòng)化腳本(小結(jié))
每天你都可能會(huì)執(zhí)行許多重復(fù)的任務(wù),例如閱讀新聞、發(fā)郵件、查看天氣、打開(kāi)書(shū)簽、清理文件夾等等,本文主要介紹了Python自動(dòng)化腳本,具有一定的參考價(jià)值,感興趣的可以了解一下2022-07-07matplotlib之多邊形選區(qū)(PolygonSelector)的使用
這篇文章主要介紹了matplotlib之多邊形選區(qū)(PolygonSelector)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python3編碼問(wèn)題 Unicode utf-8 bytes互轉(zhuǎn)方法
今天小編就為大家分享一篇Python3編碼問(wèn)題 Unicode utf-8 bytes互轉(zhuǎn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Linux下Python安裝完成后使用pip命令的詳細(xì)教程
這篇文章主要介紹了Linux下Python安裝完成后使用pip命令的詳細(xì)教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11python入門(mén)語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句
本文介紹了python入門(mén)語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句,if?語(yǔ)句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施,而for?循環(huán)用于針對(duì)集合中的每個(gè)元素都一個(gè)代碼塊,而?while?循環(huán)不斷地運(yùn)行,直到指定的條件不滿(mǎn)足為止,本文通過(guò)示例代碼詳解介紹,需要的朋友參考下吧2022-04-04python中數(shù)據(jù)爬蟲(chóng)requests庫(kù)使用方法詳解
本篇文章主要介紹了python中數(shù)據(jù)爬蟲(chóng)requests庫(kù)使用方法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02