小易有一个长度为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; }