leetcode第80题,这个题目是之前第26题的升级版,在原来的基础上要求可以允许两个重复的情况出现。
其实这样也并不是很苦难,只是在原来的基础上要多增加一个计数器,来计数出现重复数字的个数,一旦重复计数超过两个,就当做一个来看待,最后当再次出现不重复情况的时候,这个计数器就归零。
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n = len(nums)
if n == 0:
return
counter = 1
dupNum = 0
start = 0
for i in range(n):
if i < n-1:
if nums[i] != nums[i+1]:
dupNum = 0
else:
dupNum += 1
if dupNum < 2:
counter += 1
start += 1
nums[start] = nums[i+1]
return counter