您的位置:首页 > 编程语言 > Python开发

leetcode之Intersection of Two Arrays II

2016-06-09 02:36 405 查看
这题跟上一题http://blog.csdn.net/howtogetout/article/details/51619443不一样的地方在于,这题要求的是尽可能大的公共部分,包含了重复数字。

老样子,使用了Counter函数来计数,去重。

from collections import Counter
class Solution(object):
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
if nums1 == [] or nums2 == []:
return []
c1 = Counter(nums1)
c2 = Counter(nums2)
length1 = len(c1.keys())
length2 = len(c2.keys())
result = []
if length1 <= length2:
for i in c1.keys():
if i in c2.keys():
if c1[i] >= c2[i]:
result = result + [i] * c2[i]
else:
result = result + [i] * c1[i]
else:
for i in c2.keys():
if i in c1.keys():
if c1[i] >= c2[i]:
result = result + [i] * c2[i]
else:
result = result + [i] * c1[i]
return result
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode python intersecti