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


  • 解:

    因为数组本身是有序,所以可以使用快慢指针。

    用快指针寻找与慢指针所指位置中值不同的项,并将其取出放到慢指针指向位置的后一个位置中。然后继续向下寻找。


  • Python3
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if len(nums) == 0: return 0
        i = 0
        for j in range(1, len(nums)):
            if nums[j] != nums[i]:
                i+=1
                nums[i] = nums[j]
        return i + 1 
  • Go
func removeDuplicates(nums []int) int {
    if len(nums) == 0 {
        return 0
    }
    i := 0
    for j := 1; j<len(nums); j++ {
        if nums[j] != nums[i]{
            i++
            nums[i] = nums[j]
        }
    }
    return i + 1
}
posted @ 2020-06-16 21:25  暮晨  阅读(104)  评论(0编辑  收藏  举报

Aaron Swartz was and will always be a hero