
class Solution {
public:
void moveZeroes(vector<int>& nums) {
if(nums.size() > 1)
{
vector<int> a;
// 找到0的位置
int i = 0;
int right = nums.size() - 1;
while(i < right)
{
if(nums[i] == 0)
{
for(int j = i; j< right; j++)
{
swap(nums[j], nums[j+1]);
}
right -= 1;
}
else
i += 1;
}
}
}
void swap(int& a,int& b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
};

Thinking:
原地变化
1 要找0的位置 要移动 移动完后剩下的元素位置会变 for不适合
2 边找边移动 while
官方题解:
1 增加空间
2 快排(等到后面复习了快排再看)