题目描述
思考过程
做这题花了5分钟思考暴力解法,思考完后再审题,好家伙,审错题了。
题目给的是有序数组,有序数组重复数字是连续在一起的,那就可以用双指针法。
解题方法
利用数组下标,变换元素。一般这种方法称为快慢指针。
复杂度
- 时间复杂度:O(n),其中 n 是输入列表 nums 的长度。
- 空间复杂度:O(1),只使用了常数级别的额外空间。
Code
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
m=0
for i in range(len(nums)):
if nums[m] != nums[i]:
nums[m+1] = nums[i]
m=m+1
return m+1