**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.
**Hint / Expected Approach:**
Two-pointer in-place swap
**Edge Cases to Consider:**
- (1) All zeros
- (2) No zeros
- (3) Zeros only at the end