算法训练营:提高篇(全彩版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

训练1 集合合并

题目描述(HDU1412):给定两个集合AB,求A+B(在同一个集合中不会有两个相同的元素)。

输入:每组输入数据均被分为三行。第1行为两个整数nm(0<nm≤10 000),分别表示集合A和集合B中的元素数量;后两行分别表示集合A和集合B中的元素(不超出int类型范围的整数),元素之间以一个空格隔开。

输出:单行输出合并后的集合,要求从小到大输出,元素之间以一个空格隔开。

1.算法设计

本题是两个集合的合并问题,集合不允许元素重复,且要求输出时有序。集合中的每个键都是唯一的,不允许重复,因此可以用set解决该问题,具体如下。

(1)定义一个集合ans,记录两个集合的合并结果。

(2)将第1个集合中的元素插入ans。

(3)将第2个集合中的元素插入ans。

(4)按序输出集合中的元素。

2.算法实现