题目简介:
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
1 | 输入:nums1 = [1,2,2,1], nums2 = [2,2] |
示例 2:
1 | 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] |
说明:
- 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。
- 我们可以不考虑输出结果的顺序。
思路:
先将两个数组进行排序(从小到大),然后设置两个指针分别指向两个数组的开头。
当nums1[i] == nums2[j]
,将目标值压入结果数组,然后两个指针都往后移动一位。
若nums1[i] < nums2[j]
,说明当前nums1[i]
值过小,i++
,往后移动一位。
若nums1[i] > nums2[j]
,说明当前nums2[j]
值过小,j++
,往后移动一位。
直至一个指针循环完所指数组时跳出循环。
代码如下:
1 | class Solution { |