网易--消除重复元素

小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。 

输入描述:
输入包括两行:
第一行为序列长度n(1 ≤ n ≤ 50)
第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔
输出描述:
输出消除重复元素之后的序列,以空格分隔,行末无空格
输入例子:
9
100 100 100 99 99 99 100 100 100
输出例子:
99 100
#include <iostream>
#include <algorithm>
#include "string.h"
#include "stdio.h"
#include <vector>
#include <deque>
#include <stack>
#include<map>
#include<utility>
#include "math.h"
using namespace std;

int main() {
    int n;
    int number;
    vector<int> arr;
    vector<int> result;
    cin>>n;
    if(n>50||n<1)
        return 0;
    for(int i=0;i<n;i++)
    {
        cin>>number;
        if(number>1000||number<1)
            return 0;
        arr.push_back(number);
    }
    map<int,int> mp;
    for(int i=0;i<n;i++)
    {
        mp[arr[i]]++;

    }

    for(int i=0;i<n;i++)
    {
        mp[arr[i]]--;
        if(mp[arr[i]]==0)
        {
            result.push_back(arr[i]);
        }
    }
  /*  map<int,int>::iterator iter = mp.begin();
    for(;iter !=mp.end();iter++)
    {
        cout<<iter->first<<' '<<iter->second<<endl;
    }
    cout<<endl;
    */
    int len = result.size();

    for(int i=0;i<len;i++)
    {
        cout<<result[i]<<" ";
    }
    cout<<endl;
    return 0;

}
原文地址:https://www.cnblogs.com/omelet/p/6627507.html