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:
- You must do this in-place without making a copy of the array.
- Minimize the total number of operations.
class Solution {
public:
void moveZeroes(vector<int>& a) {
if(a.size()==1||a.size()==0)
return;
int i=0,j=0,n=a.size();
while(i<n)
{
if(a[i]==0) ++i;
else{
if(i!=j)
{
a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
}
++j,++i;
}
}
}
};