2017网易春招 消除重复元素(set)

来源:互联网 发布:水仙花数java三位数 编辑:程序博客网 时间:2024/05/29 14:41
小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。 
输入描述:
输入包括两行:第一行为序列长度n(1 ≤ n ≤ 50)第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔


输出描述:
输出消除重复元素之后的序列,以空格分隔,行末无空格

输入例子:
9100 100 100 99 99 99 100 100 100

输出例子:

99 100

思路:从后向前去重(运用了set去重);

代码:
#include<iostream>#include<string>#include<algorithm>#include<set>#include<vector>using namespace std;int main(){    int n;    int a[1002]={0};    vector<int>v;    set<int>s;    cin>>n;    for(int i=0;i<n;i++)        cin>>a[i];    for(int i=n-1;i>=0;i--){        if(s.find(a[i])==s.end()){            s.insert(a[i]);            v.push_back(a[i]);        }    }    cout<<v[v.size()-1];    for(int i=v.size()-2;i>=0;i--){        cout<<" "<<v[i];    }    cout<<endl;    return 0;}


原创粉丝点击