2017校招-京东:集合

题目描述

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

输入

多组(不超过 5 组)数据。

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

输出

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

示例

输入
1 2
1
2 3
1 2
1
1 2
输出
1 2 3
1 2

解题代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<String> ans = new ArrayList<String>();
while (sc.hasNext()) {
int n = sc.nextInt();
int m = sc.nextInt();
int[] merge = new int[n+m];
for (int i = 0; i < n+m; i++) {
merge[i] = sc.nextInt();
}
Arrays.sort(merge);
int pre = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < n+m; i++) {
if (merge[i] != pre) {
sb.append(merge[i] + " ");
pre = merge[i];
}
}
ans.add(sb.toString().trim());
}
for (String line : ans) {
System.out.println(line);
}
}
}
您的支持将鼓励我继续创作!