#10269. 数字筛选

数字筛选

Problem: 数字筛选

任务总览

任务名称 时间限制 内存限制 分数
数字筛选 1 sec 1024 MB 5

题目描述

Medusa 同学拿到了两组数字,老师请你编程帮他找出第 2 组数中,在第 1 组数中出现过的数字。输出时,需将所有满足条件的数​从小到大排列​。

注意:如果一个数字在第 2 组中出现了多次,而第 1 组中也有该数字,那么它应该被多次输出。例如:

  • 第 1 组数为:8 7 9 8 2 6 3
  • 第 2 组数为:9 6 8 3 3 2 10

输出应为:2 3 3 6 8 9

输入格式

  • 第一行包含两个整数 nm,表示两组数的数量。
  • 第二行包含 n 个正整数,表示第 1 组的数字。
  • 第三行包含 m 个正整数,表示第 2 组的数字。

输出格式

  • 输出所有在第 1 组中出现的第 2 组的数字,按从小到大顺序排列。数字之间用一个空格隔开。

输入输出示例

输入示例 1

7 7
8 7 9 8 2 6 3
9 6 8 3 3 2 10

输出示例 1

2 3 3 6 8 9

题目解析

  • 使用 unordered_setset 存储第 1 组的所有数字,便于快速查找。
  • 遍历第 2 组数字,如果该数字在第 1 组中出现,则记录下来。
  • 最后将所有满足条件的数字排序后输出。

数据范围

  • 对于 60% 的数据:1 ≤ n, m ≤ 1000,每个数 ≤ 2×10⁹
  • 对于 100% 的数据:1 ≤ n, m ≤ 10^5,每个数 ≤ 2×10⁹