OJ lintcode 移动零

给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序
注意事项
1.必须在原数组上操作
2.最小化操作数

您在真实的面试中是否遇到过这个题?
Yes
样例
给出 nums = [0, 1, 0, 3, 12], 调用函数之后, nums = [1, 3, 12, 0, 0].

/*
这个也可以通过oj
不过时间复杂度比较高
class Solution {
public:
    /**
     * @param nums an integer array
     * @return nothing, do this in-place
     */
     /*
     void moveZeroes(vector& nums) {
        // Write your code here
        int length=nums.size();
        for(int j=0;j& nums) {
        int pw = 0;
        for (int pr = 0; pr < nums.size(); pr++) {
            if (nums[pr] != 0) {
                nums[pw] = nums[pr];
                pw++;
            }
        }

        // 再把pw指向的元素后面的0补上
        for (; pw < nums.size(); pw++) {
            nums[pw] = 0;
        }
    }
};

你可能感兴趣的:(OJ lintcode 移动零)