> For the complete documentation index, see [llms.txt](https://mayanktyagi3111.gitbook.io/interview-prep/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mayanktyagi3111.gitbook.io/interview-prep/strings-arrays-and-2-pointers/move-zeroes.md).

# 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.

```java
class Solution {
    public void moveZeroes(int[] nums) {
        int pointer=0;
        int pointerZero=0;
        while(pointer<nums.length){
            if(nums[pointer]!=0){
                if(nums[pointer]!=nums[pointerZero])
                {
                    int temp=nums[pointer];
                    nums[pointer]=0;
                    nums[pointerZero]=temp;
                }
                pointerZero++;
            }
            pointer++;
        }
    }
}
```
