547.两数组的交集
题目
描述
给出两个数组,写出一个方法求出它们的交集
- 结果中的每个元素必须是唯一的。
- 结果需要为升序。
样例
example 1:
input: nums1 = [1,2,2,1],nums2 = [2,2]
output: [2]
example 2:
input: nums1 = [1,2],nums2 = [2]
output: [2]
题解
思路
交集仅考虑出现过,不考虑出现次数,所以考虑将nums1,num2
去重复化。此时每个数值均出现一次,这时候在考虑两数组中的重复性,即可得到交集。根据题目输出要求,对交集进行排序。
步骤
- 利用
set()
的不重复性,将nums1,nums2
化简为不重复的集合; - 利用小数组遍历大数组得到交集;
- 利用
list.sort()
对交集进行升序排序; - 返回交集列表;
程序
def intersection(nums1,nums2):
key_1,key_2 = set(nums1),set(nums2)
if len(key_1) > len(key_2):
res = [x for x in key_2 if x in key_1]
else:
res = [x for x in key_1 if x in key_2]
if len(res) != 0 and len(res) != 1:
res.sort(reverse = False)
return res