给定两个数组,编写一个函数来计算它们的交集。

示例 1:

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例 2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:

输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。
进阶:

如果给定的数组已经排好序呢?你将如何优化你的算法?
如果 nums1 的大小比 nums2 小很多,哪种方法更优?
如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?

思路:相似题:leetcode349. 两个数组的交集

但是这个题set解决不了问题了。用map记录出现的次数即可。


class Solution {public int[] intersect(int[] nums1, int[] nums2) {if (nums1.length > nums2.length) {return intersect(nums2, nums1);}HashMap<Integer, Integer> m = new HashMap<>();for (int n : nums1) {m.put(n, m.getOrDefault(n, 0) + 1);}int k = 0;for (int n : nums2) {int cnt = m.getOrDefault(n, 0);if (cnt > 0) {nums1[k++] = n;m.put(n, cnt - 1);}}return Arrays.copyOfRange(nums1, 0, k);}
}

leetcode350. 两个数组的交集 II相关推荐

  1. leetcode350. 两个数组的交集 II(hashmap)

    给定两个数组,编写一个函数来计算它们的交集. 将长度小的数组放入hashmap,记录出现的次数,遍历另一个数组,找出交集 class Solution {public int[] intersect( ...

  2. 两个数组的交集 II

    两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 ...

  3. leetcode初级算法4.两个数组的交集 II

    leetcode初级算法4.两个数组的交集 II 仅为个人刷题记录,不提供解题思路 题解与收获 我的解法:(总结在代码中) public int[] intersect(int[] nums1, in ...

  4. 两个对象数组交集_yiduobo的每日leetcode 349.两个数组的交集 amp;amp; 350.两个数组的交集II...

    祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧 349.两个数组的交集https://leetcode-cn.com/problems/intersection ...

  5. leetcode系列-350.两个数组的交集II

    leetcode系列–第350题.两个数组的交集II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集. 返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一 ...

  6. LeetCode算法题350:两个数组的交集II(Intersection of Two Arrays II)

    技术交流可以加: 本人微信:xcg852390212 本人qq:852390212 学习交流qq群1(已满): 962535112 学习交流qq群2: 780902027 两个数组的交集II Leet ...

  7. LeetCode 350. 两个数组的交集 II

    350. 两个数组的交集 II 难度简单640收藏分享切换为英文接收动态反馈 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集.返回结果中每个元素出现的次数,应与元素在两 ...

  8. Leetcode 350. 两个数组的交集 II 解题思路及C++实现

    解题思路: 和349. 两个数组的交集 这道题目很相似,这道题只是在返回的数组中,多了重复的数字,其实相较于349题,350题更简单. 先对两个数组进行排序,然后遍历这两个数组,找到相同的数字之后,就 ...

  9. 350. Intersection of Two Arrays II 两个数组的交集 II

    Title 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = ...

最新文章

  1. LeetCode简单题之二叉树的最大深度
  2. 2018/5/1-----1987年图灵奖PPT
  3. 通过 .gitlab-ci.yml配置任务-官方配置文件翻译
  4. YUV视频格式到RGB32格式转换的速度优化 上篇(转)
  5. 关于SysinternalsSuite全部工具【详解】
  6. 文件服务器的配置与管理(2) 实现软RAID
  7. python对excel增删改查_Python之Excel 优雅操作手法 精选
  8. 【Vue.js 3.0】不使用根标签,Error:[vue/no-multiple-template-root] The template root requires exactly one ...
  9. mysql的limit_MYSQL中LIMIT用法
  10. 【numpy】使用numpy/pytorch创建数组时的一点疑问
  11. Spring : AutowireCapableBeanFactory自动装配能力
  12. 高中计算机课程事例,[案例教学法在高中信息技术教学中的应用] 教学案例分析100例...
  13. matlab求两点的距离,matlab求两点间距离
  14. 目标检测 | CVPR 2019 目标检测论文汇总
  15. windows超级工具AlantopTool
  16. Spark、Hadoop大数据平台搭建
  17. 测试进阶必备,这5款http接口自动化测试工具真的很香
  18. 80psi等于多少kpa_压力单位PSI与kpa换算
  19. C语言中从字符串中提取数字
  20. Nova的安装及其配置

热门文章

  1. win10 python 调用模块_python常识系列14--gt;python通过jpype模块调用jar包
  2. 机器人蛮王_盖伦:吊打我老婆,蛮王:我也是,他:被老婆打的不敢出塔
  3. UE4 查看打包文件内容
  4. 获得系统中某个进程的cpu使用率
  5. 擦窗机器人测试标准_擦窗机器人,我选择玻妞的三个理由!
  6. 是网关吗_智能家居网关功能这么多,你都知道吗?
  7. jdbc存储过程mysql_JDBC对MySQL数据库存储过程的调用
  8. ASP.NET MVC 入门7、Hellper与数据的提交与绑定
  9. C# 彻底搞懂async/await
  10. 850是什么意思_沃尔沃为什么不是一线豪华品牌?