283. Move Zeroes

Given an arraynums, write a function to move all0's to the end of it while maintaining the relative order of the non-zero elements.

For example, givennums = [0, 1, 0, 3, 12], after calling your function,numsshould be[1, 3, 12, 0, 0].

Note:

You must do thisin-placewithout making a copy of the array.

Minimize the total number of operations.

题目大意:

将数组中元素为0的元素放到数组的后面,但是数组中其他非0元素,保持原来的顺序。

代码如下:

classSolution{public:voidmoveZeroes(vector<int>&nums){intstep=0;for(inti=0;i<nums.size();i++){if(nums[i]==0){step++;}else{nums[i-step]=nums[i];if(step!=0)nums[i]=0;}}}};

2016-08-12 01:26:32