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:
- You must do this in-place without making a copy of the array.
- Minimize the total number of operations.
题目大意:将给出的数组中的0元素排到数组的最后。
class Solution {
public:
void moveZeroes(vector<int>& nums)
{
int count = 0;
int num = nums.size();
for(int i=0; i<num; i++){
if(nums[i] == 0)
count++;
if(nums[i] != 0)
nums[i-count] = nums[i];
}
for(int j=0; j<count; j++)
nums[num-j-1] = 0;
}
};