問題描述:
給定一個排序數組,你需要在原地刪除重復出現的元素,使得每個元素只出現一次,返回移除后數組的新長度。
不要使用額外的數組空間,你必須在原地修改輸入數組并在使用O(1)額外空間的條件下完成。
示例
示例1:
給定數組nums=[1,1,2],
函數應該返回新的長度2,并且原數組nums的前兩個元素被修改為1,2。
你不需要考慮數組中超出新長度后面的元素。
示例2:
給定nums=[0,0,1,1,1,2,2,3,3,4],
函數應該返回新的長度5,并且原數組nums的前五個元素被修改為0,1,2,3,4。
你不需要考慮數組中超出新長度后面的元素。
解題思路:
遍歷列表,如果與當前元素與下一個相同則刪除掉此元素
代碼:
classSolution(object):
defremoveDuplicates(self,nums):
"""
:typenums:List[int]
:rtype:int
"""
i=0
while(i
ifi+2<=len(nums):
#第i+1+1個元素不為空
ifnums[i]==nums[i+1]:
nums.remove(nums[i])
i-=1
else:
returnlen(nums)
i+=1
以上內容為大家介紹了使用Python刪除排序數組中的重復項,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.kei0345678.cn/