描述
给定一个数组 里面只有0跟1 然后把如果有0那么把0 变成2个,顺序不变,多出的位数 直接舍弃
例子
[1,0,1]=>[1,0,0]
[001010]=>[000010]
时间复杂度 O(n) 空间复杂度O(n)
思路
利用新开一个数组,进行扫描遇到1,则填入1,遇到0则填入00。
代码
#include<stdio.h>
int main()
{
int array[] = {0,0,1,0,1,0};
int length = 6;
int countZero = 0;
for(int i=0;i<length;i++)
{
if(array[i]==0)
countZero++;
}
//一个变两个 多一位
int newArrayLegth = length;
int newArray[length];
int newArrayIndex=0;
for(int i=0;i<length;i++)
{
if(newArrayIndex == length)
break;
if(array[i]==0)
{
newArray[newArrayIndex++]=0;
newArray[newArrayIndex++]=0;
}else
{
newArray[newArrayIndex++]=1;
}
}
for(int i=0;i<length;i++)
{
printf("%d ",newArray[i]);
}
}