LeetCode 283. Move Zeroes

Description

https://leetcode.com/problems/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.

Example:

Input: [0,1,0,3,12]
Output: [1,3,12,0,0]

Note:

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

Explanation

Use a temp array to store the element in rotating order

Python Solution

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        i = 0
        j = 0
        
        for j in range(0, len(nums)):
            if nums[j] != 0:
                temp = nums[i] 
                nums[i] = nums[j]
                nums[j] = temp
                i = i + 1
  • Time complexity: O(N).
  • Space complexity: O(1).

2 Thoughts to “LeetCode 283. Move Zeroes”

  1. class Solution {
    public void moveZeroes(int[] nums) {

    if(nums.length == 0 || nums == null) return;

    int idx = 0;
    for(int i =0; i< nums.length;i++){
    if(nums[i] != 0){
    nums[idx++] = nums[i];
    }
    }

    while(idx < nums.length){
    nums[idx++] = 0;
    }

    return;

    }
    }

Leave a Reply

Your email address will not be published. Required fields are marked *