移动零
2021-04-07 本文已影响0人
YOLO_2a2d
给定一个数组 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++;
}
}