class Solution {
public:
vector<int> moveZeroes(vector<int>& nums) {
int sum=0,place=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==0){
sum++;
}
else{
nums[place]=nums[i];
if(i!=place)
nums[i]=0;
place++;
}
}
return nums;
}
};
My Solution
诶不对,我为啥写了个sum???脑壳有shi。。。
Better Solution
按顺序把不是0的交换到前面去
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int n=nums.size();
int j=0;
for(int i=0;i<n;i++){
if(nums[i]!=0){
int temp=nums[j];
nums[j]=nums[i];
nums[i]=temp;
j++;
}
}
}
};