【問題】
有一組數字,從1到n,從中減少了3個數,順序也被打亂,放在一個n-3的數組裡
請找出丟失的數字,最好能有程序,最好算法比較快
假設n=10000
【解決】
方法一:
/*有一組數字,從1到n,從中減少了3個數,順序也被打亂,放在一個n-3的數組裡請找出丟失的數字,最好能有程序,最好算法比較快假設n=10000假設存在數組A[N-3]上方法:空間轉時間開一數組int
B[N+1],並初始化為0,遍歷數組A,如A[i]=250,那麼B[250]=1;直到遍歷完數組A,那麼遺失的數在B[x]=0上,再遍歷一次數組B找到B[x]=0,B[y]=0,B[z]=0.那麼x,y,z即所求效率為n*/
<pre name="code" class="cpp">void missnum(int A,int n-3)
{
int B[n+1]={0};
for(int i=0;i<n-3;i++)
{
B[A[i]]=1;
}
for(int i=1;i<n+1;i++)
{
if(B[i]!=1)
printf("%d",i);//輸出丟失的數
}
}