043 · Intersection of Two Arrays II

algorithm
Published

June 23, 2026

Problem

给定两个整数数组 nums1nums2

请返回:两个数组的交集。

交集里的每个元素可以重复出现。

返回结果的顺序不重要。

例如:

nums1 = [1, 2, 2, 1]
nums2 = [2, 2]

两个数组的交集是:

[2, 2]

再比如:

nums1 = [4, 9, 5]
nums2 = [9, 4, 9, 8, 4]

可以返回:

[4, 9]

也可以返回:

[9, 4]

因为题目不要求固定顺序。

如果某个元素在两个数组中都出现多次,答案中也应该保留对应的重复元素。

例如:

nums1 = [1, 2, 2, 3]
nums2 = [2, 2, 2]

交集是:

[2, 2]

Examples

示例 1

Input:  nums1 = [1, 2, 2, 1], nums2 = [2, 2]
Output: [2, 2]

解释:两个数组都包含两个 2,所以答案里保留两个 2

示例 2

Input:  nums1 = [4, 9, 5], nums2 = [9, 4, 9, 8, 4]
Output: [4, 9]

解释:49 都在两个数组里出现。输出 [9, 4] 也可以,因为顺序不重要。

示例 3

Input:  nums1 = [1, 2, 2, 3], nums2 = [2, 2, 2]
Output: [2, 2]

解释:2nums1 中出现两次,在 nums2 中出现三次,所以答案里只能保留两个 2

Constraints

  • \(1 \leq\) nums1.length, nums2.length \(\leq 1000\)
  • \(0 \leq\) nums1[i], nums2[i] \(\leq 1000\)