法1:
class Solution {
public:
void moveZeroes(vector<int>& nums)
{
int begin = 0;
for (int end = 0; end < nums.size(); end++)
{
if (nums[end] != 0)
{
nums[begin] = nums[end];
begin++;
}
}
for (; begin < nums.size(); begin++)
nums[begin] = 0;
}
};
法2:官方解法
其实就是上文法1的做法
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int n = nums.size(), left = 0, right = 0;
while (right < n) {
if (nums[right]) {
swap(nums[left], nums[right]);
left++;
}
right++;
}
}
};