1. 程式人生 > >LintCode - Move Zeros

LintCode - Move Zeros

解法一

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int left = 0, right = 0;
        while (right < nums.size()) {
            if (nums[right]) {
                swap(nums[left++], nums[right]);
            }
            right++;
        }
    }
};

解法二

class Solution {
public:
    void moveZeroes(vector<int> &nums) {
        int n = nums.size();
        int l=0, r=0;
        while(r<n){
            if(nums[l]!=0) l++;
            else if(nums[r]!=0) swap(nums[l++], nums[r]);
            r++;
        }
    }
};