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

image.png

  1. func removeDuplicates(nums []int) int {
  2. for i:=len(nums)-1;i>0;i--{
  3. if nums[i]==nums[i-1]{
  4. nums = append(nums[:i],nums[i+1:]...)
  5. }
  6. }
  7. return len(nums)
  8. }
  9. func main() {
  10. l := []int{1,1,2}
  11. r := removeDuplicates(l)
  12. for i:=0;i<r;i++{
  13. fmt.Println(l[i])
  14. }
  15. }

快慢指针

  1. //快慢指针
  2. func removeDuplicates(nums []int) int {
  3. slow := 0//慢指针
  4. //快指针变 块指针便利数组
  5. for quick :=1; quick<len(nums) ;quick++ {
  6. if nums[slow]!=nums[quick] {
  7. slow++// 只有当前值和快指针不相同
  8. nums[slow]=nums[quick]
  9. }
  10. }
  11. return slow +1
  12. }

image.png