遍历

  1. func removeDuplicates(nums []int) int {
  2. var numss []int
  3. if len(nums) == 0 {
  4. return 0
  5. }
  6. for _, v := range nums {
  7. if len(numss) == 0 {
  8. numss = append(numss, v)
  9. } else {
  10. i := len(numss) - 1
  11. if numss[i] == v {
  12. } else {
  13. numss = append(numss, v)
  14. }
  15. }
  16. }
  17. for i, v:=range numss {
  18. nums[i] = v
  19. }
  20. return len(numss)
  21. }

双指针

func removeDuplicates(nums []int) int {
    n := len(nums)
    if n == 0 {
        return 0
    }
    slow := 1
    for fast := 1; fast < n; fast++ {
        if nums[fast] != nums[fast-1] {
            nums[slow] = nums[fast]
            slow++
        }
    }
    return slow
}
func removeDuplicates(nums []int) int {
    n := len(nums)
    if n == 0 {
        return 0
    }
    s := 1
    for i:=1;i<n;i++{
        if nums[i] != nums[i-1] {
          nums[s] = nums[i]
          s++  
        }
    }
    return s
}