leetcode top 100 刷题之旅-top4(移动零元素)

37 阅读1分钟

解题过程:

image.png

具体代码:

func TestMoveZero(t *testing.T) {
    nums := []int{0, 1, 0, 3, 12}
    var left = 0
    for right := 0; right < len(nums); right++ {
       //当有指针小于数组大小时,有指针如果是非0值就后移,当遇到0值的时候和左指针交换数据,并且向后移。
       if nums[right] != 0 {
          // go 中可以通过多个值来进行数值的替换,不需要使用临时变量。
          nums[right], nums[left] = nums[left], nums[right]
          left++
       }
    }
    fmt.Println(nums)
}