題目描述:
輸入n個整數的序列,要求對這個序列進行去重操做。所謂去重,是指對這個序列中每一個重複出現的整數,只保留該數第一次出現的位置,刪除其他位置。ios
輸入描述:編程
輸入包含兩行,第一行包含一個正整數n(1 ≤ n ≤ 1000),表示第二行序列中數字的個數;第二行包含n個整數(範圍1~5000),用空格分隔。數組
輸出描述:編程語言
輸出爲一行,按照輸入的順序輸出去重以後的數字,用空格分隔。spa
樣例:code
輸入:blog
5
10 12 93 12 75ci
輸出:io
10 12 93 75class
思路:邊輸入邊檢查是否有重複數據。首先輸入a[i],再套一層循環,將a[i]與數組前面的值相比較,如有重複,就要將新輸入的數據a[i]去掉,也就是將i減1,且n也由於去掉了一個重複的數據而要減1,那麼進入下一次循環時下一個值可直接將目前的a[i]覆蓋,輸出時次數也不用再去調整,直接是1到n,以此類推。
1 #include<iostream> 2 using namespace std; 3 int main(void) 4 { 5 int n; 6 cin>>n; 7 int *a=new int[n+1]; 8 for(int i=1;i<=n;i++) 9 { 10 cin>>a[i]; 11 for(int j=1;j<i;j++) 12 { 13 if(a[j]==a[i]) 14 { 15 i=i-1; 16 n=n-1; 17 } 18 } 19 } 20 for(int i=1;i<n;i++) 21 { 22 cout<<a[i]<<" "; 23 } 24 cout<<a[n]; 25 delete[]a; 26 return 0; 27 }