题目描述:给定一个数组,假定这个数组中多个0,并且其他元素都各出现一次,
试将所有的0移到数组的尾部。
举例:
给定数组: 1,3,0,5,7,0,3,4
最后所得数组:1,3,5,7,3,4,0,0
下边给出两种方法实现:
方法一:原理就是遇到0的时候,后边的元素统一向前移动。如果前边是1个0,后边元素
向前移动一个,如果两个0,后边元素向前移动2个,以此类推,最后将后边的元素填充为
0即可。
代码实现:
#include<stdio.h>
void moveZeros(int arr[], int len)
{
if (len <= 0)
{
return;
}
int i = 0;
int zeros = 0;
for (i = 0;i &l