【leetcode】283. Move Zeroes

Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements.

For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.

相当于设了两个指针,然后进行运算

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var moveZeroes = function(nums) {
    var ll = nums.length;
    var loc_zero=-1;
    for(var i=0;iif(loc_zero===-1&&nums[i]===0){
            loc_zero=i;
        }
        if(nums[i]!==0&&loc_zero!==-1){
            nums[loc_zero]=nums[i];
            nums[i]=0;
            loc_zero++;
            while(nums[loc_zero]!==0){
                loc_zero++;
            }
        }
    }
};

你可能感兴趣的:(leetcode)