【陣列】4 刪除序列重複元素(陣列)
阿新 • • 發佈:2021-02-05
技術標籤:DHUのOJ資料結構
問題描述 :
使用陣列程式設計:
一個整數序列,其中有重複元素,請刪除重複元素。
輸入說明 :
第一行輸入一個整數n(0<=n<=100)
第二行輸入n個整數,表示序列中的元素。
輸出說明 :
輸出刪除重複元素後的序列。數字之間以一個空格分隔。
如果有多個元素相同,則保留第一個,刪除後面所有的重複的元素。
輸入範例 :
10
13 5 13 9 32 51 76 5 9 8
輸出範例 :
13 5 9 32 51 76 8
題解:
這題已經給足了面子了。
理論上如果我心情不太好,直接sort然後來一遍迴圈判斷就完事了(這樣子下一題我還可以直接上這個題模板)。
反正就是對於每個數字都進行查詢,如果相同就打上個標記,當然我這裡偷懶了,用了特殊值,反正學校oj也沒hack功能。
程式碼:
#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> #include <cstring> #include <vector> using namespace std; int a[200]; int main() { int n; int i,j; cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(i=0;i<n;i++) { if(a[i]!=-999) for(j=i+1;j<n;j++) { if(a[j]==a[i]) a[j]=-999; } } //for(i=0;i<n;i++) // cout<<a[i]<<" "; //cout<<endl; int b[200],t=0; for(i=0;i<n;i++) if(a[i]!=-999) b[t++]=a[i]; for(i=0;i<t-1;i++) cout<<b[i]<<" "; cout<<b[i]; return 0; }