刷题 移动零

我的解法:记录多少0的元素并删除,之后再添加

 void moveZeroes(vector<int>& nums) {     
        int j=0;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]!=0)
                continue;
             if(nums[i]==0)
            {
               j++;
                nums.erase(nums.begin()+i); 
                i--;
            }            
        }
        for(int z=0;z<j;z++)
            nums.push_back(0);       
    }

解法一:直接复制简单明了

 void moveZeroes(vector<int>& nums) { 

int n=nums.size();

if(n==0) return ;

int count=0;

for(int i= 0;i<n;i++){

if(nums[i]!=0) nums[count++]=nums[i];

}

while(count<n)

nums[count++]=0;

}


猜你喜欢

转载自blog.csdn.net/a1111h/article/details/82019419