问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4044 访问。

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

输入: nums1 = [1,2,2,1], nums2 = [2,2]

输出: [2,2]

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

输出: [4,9]

说明:

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

进阶:

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


Given two arrays, write a function to compute their intersection.

Input: nums1 = [1,2,2,1], nums2 = [2,2]

Output: [2,2]

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]

Output: [4,9]

Note:

Each element in the result should appear as many times as it shows in both arrays.
The result can be in any order.

Follow up:

What if the given array is already sorted? How would you optimize your algorithm?
What if nums1's size is small compared to nums2's size? Which algorithm is better?
What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?


示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4044 访问。

public class Program {public static void Main(string[] args) {var nums1 = new int[] { 4, 9, 4, 5 };var nums2 = new int[] { 9, 4, 9, 8, 4 };var res = Intersection(nums1, nums2);ShowArray(res);Console.ReadKey();}private static void ShowArray(int[] array) {foreach(var num in array) {Console.Write($"{num} ");}Console.WriteLine();}private static int[] Intersection(int[] nums1, int[] nums2) {var list = new List<int>();var dic = new Dictionary<int, int>();for(var i = 0; i < nums1.Length; i++) {if(dic.ContainsKey(nums1[i])) {dic[nums1[i]]++;} else {dic[nums1[i]] = 1;}}for(var i = 0; i < nums2.Length; i++) {if(dic.ContainsKey(nums2[i]) && dic[nums2[i]] != 0) {list.Add(nums2[i]);dic[nums2[i]]--;}}return list.ToArray();}}

以上给出1种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4044 访问。

9 4 4

分析:

显而易见,以上算法的时间复杂度为: 

C#LeetCode刷题之#350-两个数组的交集 II(Intersection of Two Arrays II)相关推荐

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

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

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

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

  3. 53 两数组的交集(Intersection of Two Arrays)

    文章目录 1 题目 2 解决方案 2.1 思路 2.3 时间复杂度 2.4 空间复杂度 3 源码 3.1 排序+合并的方式 3.2 二分搜索的方式 3.3 哈希表的方式 1 题目 题目:两数组的交集( ...

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

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

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

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

  6. 每天Leetcode 刷题 初级算法篇-打乱数组

    目录 Leetcode刷题 Leetcode刷题 /*** @program: mydemo* @description: 设计问题-打乱数组* @author: Mr.zeng* @create: ...

  7. LeetCode 350. 两个数组的交集 II ntersection of Two Arrays II

    Table of Contents 一.中文版 二.英文版 三.My answer 四.解题报告 一.中文版 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2 ...

  8. Leetcode-数据结构-350. 两个数组的交集 II

    问题 给两个整数数组 nums1 和 nums2 ,请以 数组形式 返回两数组的 交集 (其在交集中出现的次数:等于该数字在两个数组中出现次数的最小值). 返回结果中 每个元素出现的次数(for遍历) ...

  9. leetcode刷题日记(一)—— 数组

    因为暑期实习找得很不顺利,感觉自身最大的问题体现在刷题量偏少,操作系统,数据库基础不好,所以现在决定写博客来记录整个过程,希望能找到大厂offer,如果不能找到的话也算是为秋招做准备. 剑指offer ...

  10. LeetCode刷题实战1:在数组上遍历出花样

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 废话不多说 ...

最新文章

  1. php图片发送另一台,phpcurl发送图片处理
  2. 浪潮英特尔在德国发布KEEP升级计划 用户可提前体验英特尔KNM
  3. Java运算符优先级和表达式及数据类型转换
  4. Kafka、 RabbitMQ、Redis、 ZeroMQ、 ActiveMQ、 Kafka/Jafka 对比
  5. 数学画图软件_云山小学进行信息技术培训:画图软件的小妙用
  6. FlashFXP 5.0.0官方中文破解版,附文件下载地址和破解码
  7. python爬虫-Day02
  8. Docker Build Cache 缓存清理
  9. 高绩效团队-VUCA时代的五个管理策略《三》—创新管理
  10. 菜鸡前端面试题整理日记
  11. 诗歌十一 十二则名门家训(非淡泊无以明志,非宁静无以致远)
  12. 高级转录组调控分析和R语言数据可视化第十三期 (线上/线下同时开课)
  13. CRC循环冗余校验码总结
  14. 斐波那契问题(兔子问题)
  15. 【cv君个人整理学习路线】视觉算法从入门到进阶
  16. python使用tkinter库,封装操作excel为GUI程序
  17. 中国社会信任的解体及其结果(zt)
  18. 超越过去三年冠军,AAMAS2019 桥牌游戏论文揭秘
  19. 电脑没有声音了怎么恢复?恢复声音的6个方法【图解】
  20. 为什么大公司不喜欢用第三方框架?难道是因为……

热门文章

  1. LeetCode 278. First Bad Version
  2. 三维点云网络PointNet——模型及代码分析
  3. 草稿 复选框绑定数据 1204
  4. 练习-自定义分页功能的实现
  5. django-元选项
  6. linux-3-which-whoaii-chmod数字法与符号法
  7. zabbix 启动报cannot connect to Service Manager: [0x00000005]解决方法
  8. Oracle-day03 上
  9. 2018云计算开源产业大会将发布四大报告、三项评估结果
  10. 070——VUE中vuex之使用getters计算每一件购物车中商品的总价