package top100liked import ( "fmt" "testing" ) // https://leetcode.cn/problems/move-zeroes/?envType=study-plan-v2&envId=top-100-liked // func moveZeroes(nums []int) { // for range nums { // for i := 0; i < len(nums); i++ { // if nums[i] == 0 { // if i+1 < len(nums) && nums[i+1] != 0 { // nums[i], nums[i+1] = nums[i+1], nums[i] // } // } // } // } // } func moveZeroes(nums []int) { size := len(nums) left, right := 0, 0 for right < size { if nums[right] != 0 { nums[left], nums[right] = nums[right], nums[left] left++ } right++ } } func TestS4(t *testing.T) { input := []int{0, 1, 0, 3, 12} moveZeroes(input) fmt.Printf("%+v", input) }