問題描述
給定一個有序數(shù)組,你需要原地刪除其中的重復內(nèi)容,使每個元素只出現(xiàn)一次,并返回新的長度趣斤。
不要另外定義一個數(shù)組方援,您必須通過用 O(1) 額外內(nèi)存原地修改輸入的數(shù)組來做到這一點。
解答方法
這是一個數(shù)組問題式镐,先沒有注意到數(shù)組是有序的反镇,被報了超時。
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
i=len(nums)
while i>0:
if nums[i-1] in nums[0:i-1]:
nums.pop(i-1)
i=i-1
return len(nums)
后面發(fā)現(xiàn)數(shù)組是有序的后娘汞,改進的代碼為:
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
i=len(nums)
if i == (0 or 1):
return i
while i>1:
if nums[i-1] ==nums[i-2]:
nums.pop(i-1)
i=i-1
return len(nums)