283. Move Zeroes

2017-10-30  本文已影响0人  YellowLayne

1.描述

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.

2.分析

3.代码

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int pos = 0, cur = 0, n = nums.size() - 1;
        while (cur <= n) {
            nums[cur] == 0 ? cur++ : (nums[pos++] = nums[cur++]);
        }
        
        while (pos <= n) nums[pos++] = 0;
    }
};
上一篇下一篇

猜你喜欢

热点阅读