思路
因为要往后移动的元素都是相同的,因此可以在遍历的时候设置一个当前指针、一个结果指针,当遍历到需要往后移动的元素0时,就用需要往前移动的元素来占住它的位置,遍历一遍完后当前指针会走到容器长度,而结果指针此时走到第一个需要补充相同元素0的位置,只需再依次填充0直到对应长度即可。
代码
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int count=0;
int len=nums.size();
int j=0;
for(int i=0;i<len;++i){
if(nums[i]!=0){
nums[j++]=nums[i];
}else{
++count;
}
}
for(;j<len;++j){
nums[j]=0;
}
}
};