# Move Zeroes To End

Posted: 3 Dec, 2019
Difficulty: Moderate

## PROBLEM STATEMENT

#### Input format :

``````The first line of input contains a single integer ‘T’ representing the number of test cases.

The first line of each test case contains a single integer ‘N’ representing the size of the array. The second line of each test case contains ‘N’ integers representing the elements of the array.
``````

#### Output Format :

``````For each test case, modify the input array and print the output in a new line
``````

#### Note :

``````You don’t need to print anything. It has already been taken care of. Just implement the given function.
``````

#### Constraints :

``````1 <= T <= 50
1 <= N <= 10^6
-10000 <= A[i] <= 10000

Where ‘T’ is the number of test cases, ‘N’ is the size of the array, A[i] is the value of the element present at the ith index.
Time Limit:1sec
`````` Approach 1

We can create a new array of integers. As soon as we find a non-zero element, we can directly insert it into our new array. After that, we can insert all the left zero’s.

We can easily calculate the number of left zeroes as :

Size of original array = size of new array + number of zero’s (since we only took non-zero elements.

Algorithm :

• Initialise a non-zero pointer with 0 value.
• Start traversing the array until we reach the end,
• If a non-zero element is found, insert it in new array. Else,
• If a zero element is found, just continue.
• After we reach the end, total number of zero’s will be original array size - new array size.
• Insert these many zeros into new array.