实现将数组中的0元素移动到末尾
我的思路是扫描一遍数组,元素为0则计数加一,不为0则按顺序复制给新数组。完整c++代码如下:
#include <iostream>
#include<vector>
using namespace std;
void moveZeroes(vector<int>& nums) {
int count,i,j,p;
count=0;
j=0;
int len;
len=nums.size();
for(i=0;i<len;i++)
{
if(nums[i]==0)
count++;
else
{
nums[j]=nums[i];
j++;
}
}
for(p=len-1;p>=j;p--)
{
nums[p]=0;
}
}
int main()
{
int t;
vector<int> v;
//vector<int> a;
v.push_back(0);
v.push_back(1);
v.push_back(3);
v.push_back(0);
v.push_back(12);
t=v.size();
moveZeroes(v);
for(int i=0;i<t;i++)
{
cout<<v[i]<<endl;
}
}