283. Move Zeroes

Leetcode link

题目简介

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */

题目给我们一个数字数组 nums

要求我们把 nums 中所有非零的元素原地前移

解题思路

我们用一个指针 pos 指向当前可以交换的位置

然后用另外一个指针 i 遍历数组,如果遇到不为 0 的元素则跟 pos 交换,交换完成后将 pos++ 即可

Javascript

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var moveZeroes = function (nums) {
    let pos = 0

    for (let i = 0; i < nums.length; i++) {
        if (nums[i] !== 0) {
            ;[nums[pos], nums[i]] = [nums[i], nums[pos]]
            pos++
        }
    }
};

results matching ""

    No results matching ""