leetcodeブラシ問題、まとめ、記録、メモ283

1206 ワード

leetcode283Move 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:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
Credits: Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
leetcodeの新しい問題は速くて、、、私のこの速度は永遠にブラシが切れないと思います.
この問題は簡単な問題だから,あまり説明しない.
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        
        int count = 0;
        
        for (vector<int>::iterator it = nums.begin(); it != nums.end();)
        {
            if (*it == 0)
            {
                nums.erase(it);
                count++;
            }
            else
            {
                ++it;
            }
        }
        
        for (int i = 0; i < count; ++i)
        {
            nums.push_back(0);
        }
    }
};