Algorithm
LeetCode 75
Move Zeroes

283. Move Zeroes

Tags

  • Array
  • Two Pointers

Link

https://leetcode.com/problems/move-zeroes/description/?envType=study-plan-v2&envId=leetcode-75 (opens in a new tab)

Question

Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements.

Note that you must do this in-place without making a copy of the array.

Example 1:
Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]
Example 2:
Input: nums = [0]
Output: [0]
Constraints:
  • 1 <= nums.length <= 104
  • -24 <= nums[i] <= 231 - 1


Follow up: Could you minimize the total number of operations done?

Answer

JavaScript

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var moveZeroes = function (nums) {
  let left = 0;
 
  for (let right = 0; right < nums.length; right++) {
    if (nums[right] !== 0) {
      [nums[right], nums[left]] = [nums[left], nums[right]];
      left++;
    }
  }
 
  return nums;
};