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.
public class Solution {
public void MoveZeroes(int[] nums) {
int pos = 0;
for(int i=0;i<nums.Length;i++){
if(nums[i]!=0){
nums[pos]=nums[i];
pos++;
}
}
while(pos<nums.Length){
nums[pos]=0;
pos++;
}
}
}
Time Complexity: O(n)
Space Complexity: O(1)


