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:

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

Solution

Maintain two pointers, Pointer i points position where none zero element needs present and pointer j points zero position, during iteration swap the value from i to j and mark value of index i as 0.

Code

Output

1 3 12 0 0

We encourage you to write a comment if you have a better solution or having any doubt on the above topic.

Leave a Reply

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