Lever's Castle

26. 删除排序数组中的重复项

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 之类的数据结构来做过滤。因为数组一定是有序的,我们只需要使用两个变量记录上一次不同的值和索引即可,比较后面的元素,相同的话什么都不做,不同的话,更新数组元素及这两个变量。


Lever

痕迹
没有过去,就没法认定现在的自己