这道题不使用一个数组赋值到另一个数组的方法,看到有大神这样写的,膜拜以下:
思路:一遍循环,如果nums[i]==0;记录下0的个数zero,如果不为0,则看看前面有没有0,如果有,则将该位前移zero位,然后该位赋为0;
代码如下:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int zero=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==0) zero++;
else{
if(zero>0){
nums[i-zero]=nums[i];
nums[i]=0;
}
}
}
}
};