乐趣区

关于golang:Leetcode专题数组283移动零

力扣链接:https://leetcode-cn.com/probl…
解题思路:

  1. 这道题尽管比较简单,然而其实也是十分奇妙的,能够用双指针的解法
  2. 首先定义快慢两个指针,初始化都为数组的第一个元素,快指针遍历整个数组,遇到不为 0 的数字,跟慢指针调换地位,此时慢指针加一,如果进入不了整个不为 0 的条件,那么快指针加一
  3. 这样就保护了一个慢指针和快指针之间的为 0 的窗口,始终到最初
func moveZeroes(nums []int)  {n := len(nums)
    low, high := 0, 0
    for high < n {if nums[high] != 0 {nums[low], nums[high] = nums[high], nums[low]
            low++
        }
        high++
    }
}
退出移动版