350 Intersection of Two Arrays II
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2, 2]
.
Note:
- Each element in the result should appear as many times as it shows in both arrays.
- The result can be in any order.
Follow up:
- What if the given array is already sorted? How would you optimize your algorithm?
- What if nums1‘s size is small compared to nums2‘s size? Which algorithm is better?
- What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?
思路
先对两个list进行排序,从nums1来开始看,对nums2来进行寻找。
如果找到相同的元素,就把元素记录到结果list当中。因为list是已经排好序了的,所以如果nums2此时的元素比nums1要大,说明nums1的迭代还没有到能够对应nums2位置的部分。反之亦然。
|
|
其实还可以用哈希表来做这道题,比双指针更加简单明了。