‘’’ 思路:先用常规方法确定哪些元素是交集,后判断交集元素在nums1和nums2的个数的是不是大于1 如果两个都大于1,那么填入两个数中较小 - 1 个 当前元素 ‘’’ 但是遗憾的是又超
‘’’
思路:先用常规方法确定哪些元素是交集,后判断交集元素在nums1和nums2的个数的是不是大于1
如果两个都大于1,那么填入两个数中较小 - 1 个 当前元素
‘’’
但是遗憾的是又超时了
改进如下:
‘’‘
思路:考虑到是将集合转成list花费大量时间,所以改成遍历元素种数(通过set)来改善算法,后往结果数组中增加元素。
‘’‘
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
res = set(nums1) if len(set(nums1)) > len(set(nums2)) else set(nums2)
lis = []
for i in res:
a,b = nums1.count(i),nums2.count(i)
if a >= 1 and b >= 1:
temp = min(a,b)
for _ in range(temp):
lis.append(i)
return lis