【LeetCode】283. Move Zeroes

Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.

For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

Note:

  1. You must do this in-place without making a copy of the array.
  2. Minimize the total number of operations.
[思路]
把非零元素提取出来按顺序前置,后面位置全部置为0.
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int len = nums.size();
        int count = 0;
        for(int i =0; i < len; i++)
        {
           if(nums[i] !=0)
           {
               nums[count] = nums[i];
               count++;
           }
        }
        for(int j = count; j < len; j++)
        {
            nums[j] = 0;
        }
    }
};


你可能感兴趣的:(【LeetCode】283. Move Zeroes)