llllmz

导航

283. 移动零C

类似像一个筛选过程,如果非0就加入数组,不非0就不加。

void moveZeroes(int* nums, int numsSize) {
    int x=0,y=0;
    while(x<numsSize){
        if(y>=numsSize) break;
        if(nums[y]!=0){
            nums[x]=nums[y];
        }else{
            while(y<numsSize && nums[y]==0) y++;
            if(y<numsSize){
                nums[x]=nums[y];
            }else{
                break;
            }
        }
        x++;
        y++;
    }
    for(int i=x;i<numsSize;i++){
        nums[i]=0;
    }
}

结果:

 

posted on 2024-02-22 20:31  神奇的萝卜丝  阅读(13)  评论(0)    收藏  举报