祖传的手艺不想丢了,所以按顺序写一个leetcode的题解。计划每日两题,争取不卡题吧
349.两个数组的交集https://leetcode-cn.com/problems/intersection-of-two-arrays/
350.两个数组的交集II https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/
都是比较基础的题目。
349不需要考虑出现的次数,因此使用set统计一下即可。350则需要使用dict来进行统计。
另外,在350中,如果两个数组已经排好序了,可以使用类似二路归并的做法来进行统计。
最后附上python代码:
349:
class Solution(object):def intersection(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: List[int]"""num_set = set()for num in nums1:num_set.add(num)res = []for num in nums2:if num in num_set:res.append(num)num_set.remove(num)return res
350:
class Solution(object):def intersect(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: List[int]"""num_dict1 = {}for num in nums1:num_dict1[num] = num_dict1.get(num, 0) + 1num_dict2 = {}for num in nums2:num_dict2[num] = num_dict2.get(num, 0) + 1res = []for num, weight in num_dict1.items():if num in num_dict2:res.extend([num] * min(weight, num_dict2[num]))return res