题目要求:在不改变数组中元素顺序的前提下,将数组中的零元素移至数组末尾;
version one
由于题目过于简单,这里就只贴出一种方案,复杂度为
o(n)
,先遍历数组,将非零元素依次填充,最后将数组尾后补零,直到填充满数组为止。唯一的技巧就是用一个 size_t变量来统计数组当前的位置。
void moveZeroes(vector<int>& nums) {
// Write your code here
vector<int>::iterator it;
size_t pos = 0;
for(it = nums.begin(); it != nums.end(); it++)
{
if(*it !=0)
{
nums[pos++] = *it;
}
}
for(; pos != nums.size(); pos++)
{
nums[pos] =0;
}
}