题目
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
C++代码
先找出nums中0的个数n,然后在nums后插入n个0,再从nums首位开始找出第一个0出现的位置,开始删除n个0.
class Solution {
public:
void moveZeroes(vector<int>& nums)
{
int len=nums.size();
int n=count(nums.begin(),nums.end(),0);
nums.insert(nums.end(),n,0);
vector<int>::iterator iter = find(nums.begin(),nums.end(),0); while(n>0)
{
if(*iter==0)
{
iter=nums.erase(iter);
--n;
}
else ++iter;
}
}
};