LeetCode 283. Move Zeroes

来源:互联网 发布:fms飞机淘宝 编辑:程序博客网 时间:2024/05/20 07:18

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.

这样竟然不超时。

class Solution {public:        void moveZeroes(vector<int>& nums) {        int len = nums.size();        bool haszero = true;        while(haszero){            haszero = false;            int i;            for(i = 0; i < len - 1; i ++){                if(nums[i] == 0){                    haszero = true;                    swap(nums[i], nums[i + 1]);                }            }            len --;        }    }};


0 0