283. Move Zeroes

来源:互联网 发布:天津模具编程招聘 编辑:程序博客网 时间:2024/06/06 20:18
class Solution {public:    void moveZeroes(vector<int>& nums) {        int first=0;        while(first<nums.size()&&nums[first])            first++;        int second=first+1;        while(1)        {            while(second<nums.size()&&nums[second]==0)                second++;            if(second>=nums.size())                break;            std::swap(nums[first++],nums[second++]);        }//下面这种方法不符合题目要求:最少操作次数。        /*int j=0;        for(int i=0;i<nums.size();i++)            if(nums[i])                nums[j++]=nums[i];        while(j<nums.size())            nums[j++]=0;*/        /*int first=0;        int second=0;        while(1)        {            while(first<nums.size()&&nums[first])                first++;            if(second<=first)                second=first+1;            while(second<nums.size()&&nums[second]==0)                second++;            if(second>=nums.size())                break;            std::swap(nums[first++],nums[second++]);        }*/    }};

0 0
原创粉丝点击