class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
n=len(nums)
if n<3:
return n
cout=0
i=n-1
while i>0:
if nums[i-1]==nums[i]:
cout+=1
if cout>1:
del nums[i+1]
n-=1
else:
cout=0
i-=1
return n
删除重复元素,使得数组中重复元素最多2个,并返回新的数组长度
要考虑到n<3的情况,因为重复元素可以有2个,所以这里可以直接返回数组长度;
注意不能“正向”求解,因为删除下标后,后续的下标会变化;而“反向”则没有影响。