20、集合

(个人水平有限,请见谅!)

题目描述:

给你两个集合,要求{A} + {B}。 注:同一个集合中不会有两个相同的元素。

输入描述:

每组输入数据分为三行,第一行有两个数字n,m(0 ≤ n,m ≤ 10000),分别表示集合A和集合B的元素个数。后两行分别表示集合A和集合B。每个元素为不超过int范围的整数,每个元素之间有个空格隔开。

输出描述:

针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开,行末无空格。

输入:

3 3
1 3 5
2 4 6

输出:

1 2 3 4 5 6

代码示例:

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int n, m, temp;
    vector <int> AB;
    cin >> n >> m;
    for (int i = 0; i < n+m; i++)
    {
        cin >> temp;
        AB.push_back(temp);
    }
    sort(AB.begin(), AB.end());
    cout << AB[0];
    for (int i = 1; i < n+m; i++)
        if (AB[i] != AB[i-1])
            cout << " " << AB[i];
}

注意:牛客网上测试样例集合本身就含有重复元素,需要当心。

猜你喜欢

转载自blog.csdn.net/qq_30534935/article/details/82930627
20)
$20
20
今日推荐