美文网首页
消除重复元素

消除重复元素

作者: RobotBerry | 来源:发表于2017-04-25 11:09 被阅读0次

问题描述

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

输入描述

输入包括两行:
第一行为序列长度n(1 ≤ n ≤ 50)
第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔

输出描述

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

输入例子

9
100 100 100 99 99 99 100 100 100

输出例子

99 100

分析

首先想到将元素排序,然后用stl的unique算法把重复元素放到尾部,最后erase掉尾部。但是题目要求每种元素保留最后出现的那个,故这种方法不可行。

可以使用一个unordered_set us,从后往前把元素丢进去,这样会得到一个没有重复元素的集合,再逆序输出即可。由于unordered_set不支持反向遍历,只能再把us的元素放在vector里,再逆序输出。

note

  1. 充分利用set的元素互斥性
  2. 可以使用vector的反向迭代器

代码

#include <cstdio>
#include <vector>
#include <unordered_set>
#include <algorithm>

using namespace std;

int main()
{
    int n;
    scanf("%d", &n);
    vector<int> nums(n);

    for (int i = 0; i < n; i++)
    {
        scanf("%d", &nums[i]);
    }

    vector<int> v;
    unordered_set<int> us;
    for (auto riter = nums.rbegin(); riter != nums.rend(); riter++)
    {
        int num = *riter;
        if (us.find(num) == us.end())
        {
            us.insert(num);
            v.push_back(num);
        }
    }

    printf("%d", v.back());
    for (int i = v.size() - 2; i >= 0; i--)
    {
        printf(" %d", v[i]);
    }

    return 0;
}

相关文章

  • 消除重复元素

    问题描述 小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到...

  • python set并集union, 交集intersectio

    python的集合set和其他语言类似,是一个无序不重复元素集, 可用于消除重复元素。 支持union(联合), ...

  • 16-set集合

    集合set set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素...

  • 消除数组重复的元素

    思想:用空对象检查原数组中是否有重复的内容

  • [编程题] 消除重复元素

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

  • 集合set(19)

    set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素,并以逗号进...

  • python-集合2018-09-26

    py集合介绍 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素....

  • python学习笔记(7)——集合(set)

    1.定义:无序不重复元素集, 基本功能包括关系测试和消除重复元素. 2.关键词:类似dict、只有key无valu...

  • 5_Set(集合)和dict(字典)

    5_Set(集合)和dict(字典) 1.集合 集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。...

  • python 集合set

    python 的set 与其他语言类似是一个无序不重复元素集,基本功能包括关系测试和消除重复元素。集合对象还支持u...

网友评论

      本文标题:消除重复元素

      本文链接:https://www.haomeiwen.com/subject/sgxvzttx.html