题目:
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两
数组的交集。返回结果中每个元素出现的次数,应与元素在两个
数组中都出现的次数一致(如果出现次数不一致,则考虑取
较小值)。可以不考虑输出结果的顺序。
示例1:
输入:nums1 = [1,2,2,1],nums = [2,2]
输出:[2,2]
解题思路:
可以使用字典来统计每个元素在两个数组中出现的次数,然后找出在俩个字典中都存在且出现次数取较小值的元素,组成交集结果。
1.首先遍历 nums1和nums2 数组,使用两个字典 count1和count2 来统计 nums1和nums2中每个元素出现的次数。
2.然后遍历count1字典的键(也就是nums1 中出现过的元素),如果这两个字典中该键对应值(出现次数)的较小值,将该元素按照这个较小值添加到结果列表中。
代码:
代码解析:
1.首先定义 了两个空字典count1和count2以及一个空列表result,分别用于统计nums1和nums2中元素出现次数以及存储最终的交集结果
2.然后通过两个for循环分别统计了nums1和nums2中每个元素出现的次数到对应的字典中。
3.最后在通过一个for循环遍历count1的键,当这个键也在count2中时,确定出该元素在两个数组中出现次数的较小min_count,并按照这个较小值将该元素多次添加到结果列表result中,最后返回result就是两个数组的交集。