题目描述
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = \[1,2,2,1], nums2 = \[2,2] 输出: \[2,2]
示例 2:
输入: nums1 = \[4,9,5], nums2 = \[9,4,9,8,4] 输出: \[4,9]
说明:
- 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
- 我们可以不考虑输出结果的顺序。
*进阶:*
- 如果给定的数组已经排好序呢?你将如何优化你的算法?
- 如果 nums1 的大小比 nums2 小很多,哪种方法更优?
- 如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
这个题目的T349的进阶版。
解题思路
这个题目有一个不同点是它的结果是交集并且包含重复元素的,在349题中,包含的重复元素在结果中出现一次即可。在这里需要将重复元素表示出来。
当遇到重复元素时,应该要进行计数,在对第二个数组进行遍历时,如果遇到重复元素并且计数大于0再进行添加。来看一下具体的代码
|
|