AC截图
题目
思路
遍历nums数组,将0删除并计数,最后在nums数组尾部添加足量的零
有一个问题是,vector数组一旦erase某个元素,会导致迭代器失效。好在有解决办法,erase会返回下一个有效元素的新迭代器。
代码
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int cnt=0;
for(auto it = nums.begin();it!=nums.end();){
if(*it == 0){
cnt++;
it = nums.erase(it);
}else{
it++;
}
}
while(cnt>0){
nums.push_back(0);
cnt--;
}
}
};