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

image.png

  1. package main
  2. import "fmt"
  3. func removeDuplicates(nums []int) int {
  4. slow :=2
  5. for fast :=2;fast<len(nums);fast++{
  6. if nums[fast]!=nums[slow-2]{
  7. nums[slow]=nums[fast]
  8. slow++
  9. }
  10. }
  11. return slow
  12. }
  13. func main() {
  14. fmt.Println(removeDuplicates([]int{1,1,1,2,2,3}))
  15. }

image.png

通用模板

  1. //通用解法, 只能重复 n 次
  2. func removeDuplicates(nums []int, n int) int {
  3. i, j := n, n
  4. for ; i < len(nums); i++ {
  5. if nums[i] != nums[j-n] {
  6. nums[j] = nums[i]
  7. j++
  8. }
  9. }
  10. return j
  11. }