#A1008. 两个数组的交集

两个数组的交集

两个数组的交集

题目描述

给定两个整数数组 nums1nums1 和 nums2nums2,求它们的交集。

如果某个整数在两个数组中分别出现 aa 次和 bb 次,那么它在交集中应出现 min⁡(a,b)\min(a,b) 次。

请输出交集的元素总数,并将交集中的元素按非递减顺序输出。

输入格式

第一行包含两个整数 n,mn,m,分别表示两个数组的长度。

第二行包含 nn 个整数,表示 nums1nums1。

第三行包含 mm 个整数,表示 nums2nums2。

输出格式

第一行输出整数 kk,表示交集中的元素总数,重复元素也计入总数。

第二行按非递减顺序输出交集中的 kk 个整数,相邻整数用一个空格分隔。当 k=0k=0 时,第二行输出空行。

样例 1

4 2
1 2 2 1
2 2

2
2 2

样例 2

3 5
4 9 5
9 4 9 8 4

2
4 9

样例说明

样例 1 中,整数 22 在两个数组中都出现两次,因此交集中保留两个 22。

样例 2 中,整数 44 和 99 在第一个数组中各出现一次,因此交集中各保留一次。

数据范围

  • 1≤n,m≤10001\le n,m\le1000;
  • 0≤nums1i,nums2j≤10000\le nums1_i,nums2_j\le1000。