Description
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. Return the result as an array.
Examples
Input:
nums = [0,1,0,3,12]Output:
[1,3,12,0,0]Explanation:
Using a two-pointer approach, non-zero elements (1, 3, 12) are shifted left to fill positions 0-2, then the remaining positions are filled with zeros.
Input:
nums = [0]Output:
[0]Explanation:
A single-element array is already sorted. The only element 0 stays in place as there are no other elements to compare or move.
Input:
nums = [5, -2, 0, 0, 8, 0, -1]Output:
[5, -2, 8, -1, 0, 0, 0]Explanation:
The non-zero elements (5, -2, 8, -1) maintain their relative order and are moved to the front, while all three zeros are moved to the end of the array.
Constraints
- •
1 ≤ nums.length ≤ 10⁴ - •
-2³¹ ≤ nums[i] ≤ 2³¹ - 1