解题过程:
具体代码:
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)
}