• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
煎蛋啊
博客园    首页    新随笔    联系   管理    订阅  订阅
网易--消除重复元素

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

}

 

posted on 2017-03-27 16:47  煎蛋啊  阅读(666)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3