[毎日]タイトル元のタイトルをドロップ:アレイの再構築

説明

のみ0 0 1の場合それでは、二つに同じ順序に0を置くれる配列を与え、余分なビットを直接廃棄
例を
[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]);
	}
	
} 

結果

ここに画像を挿入説明

公開された142元の記事 ウォン称賛53 ビュー20万+

おすすめ

転載: blog.csdn.net/qq_23301703/article/details/104027527