思路:
用两个指针,一个指向当前不重复的最大值,一个指向扫描的最新位置。术语叫,“快慢指针法”
func removeDuplicates(nums []int) int {
if len(nums) < 1 {
return 0
}
head, cur := 0, 1
val := nums[head]
//for cur < len(nums)-1 { //注意,这里是<len!
for cur < len(nums) {
if nums[cur] > val {
head++
val = nums[cur]
nums[head] = val
}
cur++
}
return head + 1
}