题目描述
思考过程
这道题第一感觉就是用双指针做,因为要在原地修改数组。题目的数组有序且允许两个重复,那么我们首次设置指针可以间隔为2
解决方法
复杂度
- 时间复杂度:O(n),其中 n 是输入列表 nums 的长度。
- 空间复杂度:O(1),只使用了常数级别的额外空间。
Code
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
m = 0
for n in range(2,len(nums)):
if nums[m] != nums[n] :
nums[m+2] = nums[n]
m +=1
return m+2