leetcode 移动zero

170 阅读1分钟

描述

解法一

func moveZeroes(nums []int)  {
    j := 0
    for i := 0; i < len(nums); i++ {
        if nums[i] != 0 {
            //交换位置
            nums[i], nums[j] = nums[j], nums[i]
            j ++
        }
    
    }
}

解法二

func moveZeroes(nums []int) {
    j := 0
    for i := 0; i < len(nums); i++ {
        if nums[i] != 0 {
            nums[j] = nums[i]   //将非0元素覆盖为0元素
            if i != j {
                nums[i] = 0     //然后将非0元素赋值为0
            }
            j ++
        }
    }
}