标签:
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:
Runtime: 60ms
1 class Solution { 2 public: 3 void moveZeroes(vector<int>& nums) { 4 if(nums.size() <= 1) return; 5 6 int zr = 0, nzr = 0; 7 while(zr < nums.size()){ 8 while(zr < nums.size() && nums[zr] != 0) 9 zr++; 10 nzr = zr + 1; 11 while(nzr < nums.size() && nums[nzr] == 0) 12 nzr++; 13 14 if(nzr >= nums.size()) break; 15 swap(nums[zr], nums[nzr]); 16 zr++; 17 nzr++; 18 } 19 } 20 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/4891379.html