题目
思路
是题目26. 删除排序数组中的重复项的升级版,条件是删除重复元素,但每个元素最多重复两次。
总体代码是类似的,这里需要额外一个变量来保存是否重复了两次。
代码
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
size = len(nums)
i = 1 #i指向下一个元素
flag = False
while i < size:
if nums[i] == nums[i-1]:
if flag == False:
flag = True #True表示重复了两次了。
i += 1
else: # 该删了
del nums[i]
size -= 1
else: # 到了新的元素,flag重置为False
flag = False
i += 1
return len(nums)