题目
解题思路
双指针,快慢指针,快指针指向需要判定的元素,慢指针指向已保存元素
处理逻辑为:当快慢指针指向的值不一致时,就需要将快指针指向的元素复制给慢指针
只需要返回慢指针就行,但是这里慢指针保存的游标,实际应该返回个数,所以需要+1
Code
func removeDuplicates(nums []int) int {
var (
fast int = 0
slow int = 0
)
for ;fast < len(nums);{
if nums[slow] != nums[fast] {
slow++
nums[slow] = nums[fast]
}
fast++
}
return slow + 1
}