March 25, 2020
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
func removeDuplicates(nums []int) int {
if len(nums) == 0 {
return 0
}
var prev int
prevIndex := 0
for i, num := range nums {
if i == 0 {
prev = num
prevIndex = i
continue
}
if prev != num {
prevIndex++
nums[prevIndex] = num
prev = num
}
}
return prevIndex + 1
}
题目很简单,按照题目要求,我们要限制空间复杂度,因此不能用 map 之类的数据结构来做过滤。因为数组一定是有序的,我们只需要使用两个变量记录上一次不同的值和索引即可,比较后面的元素,相同的话什么都不做,不同的话,更新数组元素及这两个变量。
痕迹
没有过去,就没法认定现在的自己