Skip to content

Latest commit

 

History

History
71 lines (55 loc) · 1.06 KB

283.移动零.md

File metadata and controls

71 lines (55 loc) · 1.06 KB

283. 移动零

url

题目

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

方法

  • 将所有的非0向前移动
  • 从非0的最后位置开始遍历填充0

code

js

let moveZeros = nums => {
    let idx = 0;
    nums.forEach(num => {if (num !== 0) nums[idx++] = num});
    while (idx < nums.length) {
        nums[idx++] = 0;
    }
    return nums;
};
console.log(moveZeros([0,1,0,3,12]))

go

func moveZeroes(nums []int) {
	idx := 0
	for _, num := range nums {
		if num != 0 {
			nums[idx] = num
			idx++
		}
	}
	for idx < len(nums) {
		nums[idx] = 0
		idx++
	}
	fmt.Println(nums)
}

java

class Solution {
    public void moveZeroes(int[] nums) {
        int idx = 0;
        for (int num : nums) {
            if (num != 0) nums[idx++] = num;
        }
        while (idx < nums.length) {
            nums[idx++] =0;
        }
    }
}