移动零

作者: YOLO_2a2d | 来源:发表于2021-04-07 10:03 被阅读0次

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    示例:

    输入: [0,1,0,3,12]
    输出: [1,3,12,0,0]
    

    说明:

    必须在原数组上操作,不能拷贝额外的数组。
    尽量减少操作次数。
    

    //暴力法:找到一个零就将其往后移动

    void moveZeroes(int* nums, int numsSize){
    
        int count=0;            ////统计零的个数
        int i=0;
    
        
        while(i<numsSize-count)         ////依据零的个数减少规模
        {
    
            if(nums[i]==0)
            {
                for(int j=i;j<numsSize-1;j++)       ////将当前位置的0值,移动到最后的位置
                {
                    int t=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=t;
                }
    
                i=-1;           //让数据从新从头开始检测
                count++;    
            }
    
            i++;
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:移动零

          本文链接:https://www.haomeiwen.com/subject/zobykltx.html