350 数组的交集II

读题

  1. 交集的定义:在两个数组里都要存在。
  2. 和另一题349的主要区别是重复的元素按照出现次数显示(should appear as many times as it shows in both arrays.)
  3. 排序后可以优化

初步解题思路

  • 遍历的方法:
  1. 遍历A数组,
  2. 能够在B数组找到时,就保存下来,
  3. 保存后判断A的下一个元素。

存在问题和解决:

  1.重复元素的交集问题:比如[1,2,2,4]和[2]的交集是[2],查找的结果是[2,2],我第一反应是用短的做A数组遍历,但类似[1,2,4]和[2,2]的交集也是[2],因此这个思路不行。解决方法:找到的元素,从B数组中删除,有的解法中相当于计数减一。

实现细节:

  1. 返回结果数组的长度不定,需要用动态数组。
posted @ 2019-11-01 16:08  MartinShi  阅读(82)  评论(0)    收藏  举报