1. 程式人生 > 其它 >【陣列】4 刪除序列重複元素(陣列)

【陣列】4 刪除序列重複元素(陣列)

技術標籤: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;
}