//暴力解法,类似于冒泡排序
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int i,j,flag;
for(j=0;j<nums.size()-1;j++)
{
flag=0;
for(i=0;i<nums.size()-j-1;i++)
{
if(nums[i]==0)
{
flag=1;
nums[i]=nums[i]^nums[i+1];
nums[i+1]=nums[i]^nums[i+1];
nums[i]=nums[i]^nums[i+1];
}
}
if(!flag) break;
}
}
};
//快慢指针
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int fast,slow=0;
for(fast=0;fast<nums.size();fast++)
{
if(nums[fast]!=0)
{
nums[slow++]=nums[fast];
/*等同于
nums[slow]=nums[fast];
slow++;但是自加更好*/
}
}
while(slow<nums.size())
{
nums[slow++]=0;
}
}
};