编辑代码

package main
import "fmt"
func main () {
    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
    fmt.Println("Hello JSRUN!   \n\n         - from Golang .")
}

func moveZeroes(nums []int) {
    left, right, n := 0, 0, len(nums)
    for right < n {
        if nums[right] != 0 {
            nums[left], nums[right] = nums[right], nums[left]
            left++
        }
        right++
    }
}

/*
    [0,1,0,3,12] l = 0, r = 0
    r == 0, --> r++
    [0,1,0,3,12] l = 0, r = 1
    r != 0, --> arr[l], arr[r] = arr[r], arr[l]  l++ r++
    [1,0,0,3,12] l = 1, r = 2
    r == 0, --> r++
    [1,0,0,3,12] l = 1, r = 3
    r != 0, --> arr[l], arr[r] = arr[r], arr[l]  l++ r++
    [1,3,0,0,12] l = 2, r = 4
    r != 0, --> arr[l], arr[r] = arr[r], arr[l]  l++ r++
    [1,3,12,0,0] l = 3, r = 5
    r == n, --> break
*/