程式題目:濾掉重複數字

  • 2237
  • 0
  • 2011-07-02

摘要:程式題目:濾掉重複數字

有個朋友問的

題目是

程式要隨意輸入20個整數 假如都沒有重複那就印出這20個數
但假如有重複 則後來重複的數則都忽略掉 
還有要以最小陣列解決
譬如4 5 6 5 2 5六個數只要印出4 5 6 2 陣列大小也從6變成4

 

這是他的想法

想法是從輸入整數的時候就判斷該整數有沒有跟之前的重複
沒有重複的話就變成陣列的元素
重複的話就省略 然後下一個整數輸入/* input the first value for originalArray[0]*/ printf("please input a number as a sequence of array:\n"); scanf("%d",&j); originalArray[0]=j;
/*input the remaining value for originalArray[1~] */ for(i=1; i<NUMBER; i++){ printf("please input a number as a sequence of array:\n"); scanf("%d",&j); for(k=i-1; k>=0; k--){ if(originalArray[k] == j){ originalArray[i]='\0';} else originalArray[i]=j; } }

 

這是我的想法:

1.直接使用hash來濾掉重複數字與轉成陣列

如果要優化的話就要針對整數及輸入數值個數作hash實作

2.使用二元樹可以減少時間複雜度(其實就是邊讀邊排序)

分享