(个人水平有限,请见谅!)
题目描述:
给你两个集合,要求{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];
}
注意:牛客网上测试样例集合本身就含有重复元素,需要当心。