Move Zeroes
Problem statement
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-231 <= nums[i] <= 231 - 1
My solution
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var moveZeroes = function(nums) {
let i = 0;
let j = 0;
const size = nums.length;
while(j < size) {
// console.log(i, j)
if (nums[j] !== 0) {
swap(i, j)
i++;
}
j++;
}
function swap(left, right) {
[nums[right], nums[left]] = [nums[left], nums[right]]
}
return nums;
};