leetCode283.MoveZeroes数组

283. Move 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:

  1. You must do this in-place without making a copy of the array.

  2. Minimize the total number of operations.

题目大意:

将数组中元素为0的元素放到数组的后面,但是数组中其他非0元素,保持原来的顺序。

代码如下:

class Solution {
public:
    void moveZeroes(vector& nums) {
        int step = 0;
        for(int i = 0 ; i < nums.size();i++)
        {
            if(nums[i] == 0)
            {
                step++;
            }
            else
            {
                nums[i - step] = nums[i];
                if(step != 0)
                    nums[i] = 0;
            }
        }
    }
};

2016-08-12 01:26:32


网站标题:leetCode283.MoveZeroes数组
标题URL:http://hbruida.cn/article/goceoj.html