Move Zeroes - Codeprg

Breaking

programing News Travel Computer Engineering Science Blogging Earning

Thursday, 6 August 2020

Move Zeroes

Move Zeroes

 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.

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;
                    }
               }
       
    }
};