leetcode刷题之349.两个数组的交集
- 题目:
给定两个数组,编写一个函数来计算它们的交集。 - 示例 :
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
- 说明:
• 输出结果中的每个元素一定是唯一的。
• 我们可以不考虑输出结果的顺序。 - 代码1:
class Solution(object):
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
c =[]
for i in range(len(nums1)):
if nums1[i] in nums2:
c.append(nums1[i])
return list(set(c))
# 执行用时 : 68 ms, 在Intersection of Two Arrays的Python提交中击败了37.18% 的用户
# 内存消耗 : 11.8 MB, 在Intersection of Two Arrays的Python提交中击败了33.95% 的用户
-
算法说明:
先建立一个空的列表c,然后将判断nums1[ ]中的元素是否在nums2[ ]中,如果在,将此元素添加到c中,返回c即可! -
代码2:
class Solution(object):
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
return list(set(nums1) & set(nums2))
# 执行用时 : 36 ms, 在Intersection of Two Arrays的Python提交中击败了98.61% 的用户
# 内存消耗 : 11.8 MB, 在Intersection of Two Arrays的Python提交中击败了32.72% 的用户
- 算法说明:
用set()函数分别将nums1[ ]和nums2[ ]中的重复元素去除掉,然后用《&》运算将重复的元素选出,返回。