题目:移动零

思路:使用两个指针,一个从前往后对数组进行遍历,另一个始终指向前端的非零元素;只要指针 i 指向的元素非零,就将指针 k 当前指向的元素赋值为 num[i] ,最后再将指针 k 后面的元素全部置为零即可

moveZeroes()

 1void moveZeroes(vector<int>& nums)
 2{
 3    int k = 0;
 4    for(int i = 0; i < nums.size(); i++)
 5    {
 6        if(nums[i] != 0)
 7        {
 8            nums[k] = nums[i];
 9            k++;
10        }
11    }
12    for(int j = k; j < nums.size(); j++)
13    {
14        nums[j] = 0;
15    }
16}

原文:easy