方法1:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int k=0; //nums[0...k)非0
//遍历到第i个元素后,保证[0...i)中所有非0元素都按照顺序排列在[0...k)中
for(int i=0;i<nums.size();i++)
{
if(nums[i])
{
nums[k]=nums[i];
k++;
}
}
//将nums剩余位置放0
for(int i=k;i<nums.size();i++)
{
nums[i]=0;
}
}
};
方法2:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int k=0;
for(int i=0;i<nums.size();i++)
{
if(nums[i])
swap(nums[i],nums[k++]);
}
}
};