leetcode——Move Zeroes

来源:互联网 发布:慧科新闻数据库 编辑:程序博客网 时间:2024/06/05 21:02

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的个数,当a+b=nums.size()的时候遍历结束。
代码实现:
class Solution {public:    void moveZeroes(vector<int>& nums) {        int n=nums.size();        int a=0;        int b=0;        while(a+b<n){            if(nums.at(a)==0){                nums.erase(nums.begin()+a);                nums.push_back(0);                b++;            }            else               a++;        }    }};

0 0
原创粉丝点击