在 Python 中进行两个数组的交集运算
假设我们有两个数组 A 和 B,这些数组中有一些元素。我们需要找出它们的交集。因此,如果 A = [1, 4, 5, 3, 6],且 B = [2, 3, 5, 7, 9],则交集为 [3, 5]
要解决这个问题,我们需要按照以下步骤操作:-
- 取两个数组 A 和 B
- 如果 A 的长度小于 B 的长度,则交换它们
- 计算数组中元素出现的频率,并将它们存储到 m 中
- 对于 B 中的每个元素 e,如果 e 存在于 m 中,并且频率不为零,
- 将 m[e] 的频率减 1
- 将 e 插入到结果数组中
- 返回结果数组
示例
让我们查看以下实现,以加深理解:-
class Solution(object): def intersect(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: List[int] """ m = {} if len(nums1)<len(nums2): nums1,nums2 = nums2,nums1 for i in nums1: if i not in m: m[i] = 1 else: m[i]+=1 result = [] for i in nums2: if i in m and m[i]: m[i]-=1 result.append(i) return result ob1 = Solution() print(ob1.intersect([1,4,5,3,6], [2,3,5,7,9]))
输入
[1,4,5,3,6] [2,3,5,7,9]
输出
[3,5]
广告