本题相对简单,进行两次遍历,第一次使用双指针先将0元素覆盖,第二次对数组剩余部分补零。具体代码如下:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int slowindex = 0;
int fastindex = 0;
int size = nums.size();
for(fastindex; fastindex < nums.size(); fastindex++){
if(nums[fastindex] != 0){
nums[slowindex++] = nums[fastindex];
}
}
for(slowindex; slowindex < nums.size(); slowindex++){
nums[slowindex] = 0;
}
}
};