0080.删除有序数组中的重复项 II
方法一:双指针
时间复杂度 $O(n)$,空间复杂度 $O(1)$。
func removeDuplicates(nums []int) int {
p, p1, p2 := 0, 0, 0
for p2 < len(nums) {
for p2 < len(nums) && nums[p1] == nums[p2] {
p2++
}
nums[p], p = nums[p1], p+1
if p2-p1 >= 2 {
nums[p], p = nums[p1], p+1
}
p1 = p2
}
return p
}