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.For example, given

`nums = [0, 1, 0, 3, 12]`

, after calling your function,`nums`

should be`[1, 3, 12, 0, 0]`

.

Note:

- You must do this
in-placewithout making a copy of the array.- Minimize the total number of operations.

Credits:

Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

Two pointers

class Solution { public: void moveZeroes(vector<int>& nums) { int len = nums.size(); int i = 0, j = 0; while(j < len){ if(nums[j] == 0){ j++; } else{ nums[i] = nums[j]; i++; j++; } } while(i < len){ nums[i] = 0; i++; } } };