移动零-lintCode

来源:互联网 发布:经济学数据库 编辑:程序博客网 时间:2024/05/18 04:00

这道题思路简单:

1.首先确定right-------指向的是最右端不为零的数的下标;

2.从右向左依次迭代.

代码:

class Solution {public:    /**     * @param nums an integer array     * @return nothing, do this in-place     */    void moveZeroes(vector<int>& nums) {        int len = nums.size();        int right = 0;        for (int i=len-1; i>=0; i--) {            if (i >= 0 && nums[i] != 0) {                right = i;                break;            }        }        for (int i=right; i>=0; i--) {            if (nums[i] == 0) {                for (int j = i; j < right; j++) {                    swap(nums[j], nums[j+1]);                }                right--;            }        }        return;    }};


0 0