[LeetCode]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.
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-place without 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.
迭代,删除0,最后补全就OK。
1 class Solution { 2 public: 3 void moveZeroes(vector<int>& nums) { 4 if(nums.size()<=1) return; 5 vector<int>::iterator iter; 6 int count=0; 7 for(iter=nums.begin();iter!=nums.end();iter++) 8 { 9 if(*iter==0) 10 { 11 nums.erase(iter); 12 iter--; 13 count++; 14 } 15 } 16 while(count--) 17 { 18 nums.push_back(0); 19 } 20 return; 21 } 22 };