Skip to content

Latest commit

 

History

History
32 lines (26 loc) · 862 Bytes

283.md

File metadata and controls

32 lines (26 loc) · 862 Bytes

Move Zeroes

解法一

// 必须在原数组上操作,不能拷贝额外的数组。
// 尽量减少操作次数。

// 这道题是双指针问题无疑了,基本上数组的题都跟双指针分不开,基本上
// 双指针问题都要用到先排序,不过这个题不需要。
func moveZeroes(nums []int)  {
    i,j := 0,0
    for j < len(nums){
        if nums[j] != 0 {
            nums[i] = nums[j]
            i++
        }
        j++
    }
    // 这个循环完毕以后,i的下下标豆薯属于非零的了,那么可以说i后面的下标都是0了,但是
    // 目前还没有。因为有一些内存地址还是其它值的,

    // 比如这样 [1,3,12,3,12]
    // 那么我们要做的就是把i后面的索引变成0就OK了。对吧对吧。

    for i < len(nums) {
        nums[i] = 0
        i++
    }
}