集合运算
题目描述:
给出两个整数集合 A, B, 求出他们的交集, 并集以及B在A中的余集。
输入:
第一行为一个整数 n, 表示集合 A 中的元素个数.
第二行有 n 个互不相同的用空格隔开的整数, 表示集合 A 中的元素.
第三行为一个整数 m, 表示集合 B 中的元素个数.
第四行有 m 个互不相同的用空格隔开的整数, 表示集合 B 中的元素.
集合中的所有元素均为 int
范围内的整数, $ n, m \leq 1000 $.
输出:
第一行按从小到大的顺序输出 A, B 交集中的所有元素.
第二行按从小到大的顺序输出 A, B 并集中的所有元素.
第三行按从小到大的顺序输出 B 在 A 中的余集中的所有元素.
输入样例:
1 2 3 4 5 1 2 3 4 5 5 2 4 6 8 10
输出样例:
1 2 3 2 4 1 2 3 4 5 6 8 10 1 3 5
Java
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 import java.util.HashMap;import java.util.Scanner;import java.util.TreeSet;public class Main { public static void main (String[] args) { var input = new Scanner (System.in); var n = input.nextInt(); var A = new TreeSet <Integer>(); for (int i = 0 ; i < n; i++) A.add(input.nextInt()); var m = input.nextInt(); var B = new TreeSet <Integer>(); for (int i = 0 ; i < m; i++) B.add(input.nextInt()); var res = new TreeSet <Integer>(); res.addAll(A); res.retainAll(B); for (Integer i : res) System.out.print(i + " " ); System.out.println(); res.clear(); res.addAll(A); res.addAll(B); for (Integer i : res) System.out.print(i + " " ); System.out.println(); res.clear(); res.addAll(A); res.removeAll(B); for (Integer i : res) System.out.print(i + " " ); } }
2023-05-22
IP属地: 北京