350. Intersection of Two Arrays II 两个数组的交集 II
Title
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。
排序
Solve
如果两个数组是有序的,则可以便捷地计算两个数组的交集。
首先对两个数组进行排序,然后使用两个指针遍历两个数组。
初始时,两个指针分别指向两个数组的头部。每次比较两个指针指向的两个数组中的数字,如果两个数字不相等,则将指向较小数字的指针右移一位,如果两个数字相等,将该数字添加到答案,并将两个指针都右移一位。当至少有一个指针超出数组范围时,遍历结束。
Code
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:nums1.sort()nums2.sort()i, j, length1, length2, ans = 0, 0, len(nums1), len(nums2), []while i < length1 and j < length2:if nums1[i] == nums2[j]:ans.append(nums1[i])i += 1j += 1elif nums1[i] < nums2[j]:i += 1else:j += 1return ans
复杂度分析
时间复杂度:O(mlogm+nlogn),其中 m 和 n 分别是两个数组的长度。对两个数组进行排序的时间复杂度是 O(mlogm+nlogn),遍历两个数组的时间复杂度是 O(m+n),因此总时间复杂度是 O(mlogm+nlogn)。
空间复杂度:O(min(m,n)),其中 m 和 n 分别是两个数组的长度。
350. Intersection of Two Arrays II 两个数组的交集 II相关推荐
- LeetCode算法题350:两个数组的交集II(Intersection of Two Arrays II)
技术交流可以加: 本人微信:xcg852390212 本人qq:852390212 学习交流qq群1(已满): 962535112 学习交流qq群2: 780902027 两个数组的交集II Leet ...
- 两个对象数组交集_yiduobo的每日leetcode 349.两个数组的交集 amp;amp; 350.两个数组的交集II...
祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧 349.两个数组的交集https://leetcode-cn.com/problems/intersection ...
- LeetCode 350. 两个数组的交集 II
350. 两个数组的交集 II 难度简单640收藏分享切换为英文接收动态反馈 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集.返回结果中每个元素出现的次数,应与元素在两 ...
- leetcode系列-350.两个数组的交集II
leetcode系列–第350题.两个数组的交集II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集. 返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一 ...
- leetcode初级算法4.两个数组的交集 II
leetcode初级算法4.两个数组的交集 II 仅为个人刷题记录,不提供解题思路 题解与收获 我的解法:(总结在代码中) public int[] intersect(int[] nums1, in ...
- 两个数组的交集 II
两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 ...
- LeetCode 350. 两个数组的交集 II ntersection of Two Arrays II
Table of Contents 一.中文版 二.英文版 三.My answer 四.解题报告 一.中文版 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2 ...
- Leetcode-数据结构-350. 两个数组的交集 II
问题 给两个整数数组 nums1 和 nums2 ,请以 数组形式 返回两数组的 交集 (其在交集中出现的次数:等于该数字在两个数组中出现次数的最小值). 返回结果中 每个元素出现的次数(for遍历) ...
- Leetcode 350. 两个数组的交集 II 解题思路及C++实现
解题思路: 和349. 两个数组的交集 这道题目很相似,这道题只是在返回的数组中,多了重复的数字,其实相较于349题,350题更简单. 先对两个数组进行排序,然后遍历这两个数组,找到相同的数字之后,就 ...
最新文章
- Java面向对象:覆写与重载
- 反射-获取java私有内部类反射类型、私有字段
- 01 辅助函数之加密函数
- 计算机网络同步技术,计算机网络同步技术
- 2018推荐的android手机,外媒推荐:2018年下半年最值得期待的5款安卓手机
- MyCat 数据库分片极简体验
- linux 移动硬盘 优化,不花一分钱,给移动硬盘加速
- 测试员,你该如何面对自己30岁后的下坡路?
- rrpp协议如何修改_RRPP协议做为高级网络工程师不能不懂的技术带你快速学习
- 米莱迪机器人加物理攻击_游戏中的那些事:米莱迪物理伤害,这个皮肤没见过,蔡文姬一直出错装...
- 空气污染扩散模型-高斯烟羽烟团模型原理及GIS应用示例
- Github优秀开源项目
- 示波器上1G/S 100MHZ的含义
- What is Dymola?---Dymola的特点和架构
- 一个完整机器学习项目的基本流程
- 测试硬件工程师常用英语单词
- 高等工程数学(一):线性空间
- Holder 方式的单例
- 以云数据库产品为例深度对比分析:华为云更安全还是阿里云更安全?
- 基于决策树的交通拥堵成因分析
热门文章
- Hadoop数据倾斜及解决办法
- c++ 数组 结构体
- 2016021701 - 百位名人读书心法01
- 08年1月Gartner商务智能平台魔法四分区
- [转]一份ASP内存的释放的实验报告
- 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...
- mysql 当前用户连接数_实战:判断mysql中当前用户的连接数-分组淘选
- jsp页面获取后台传过来的list集合的长度
- 数据结构与算法一 - 二叉树基础
- 讲解web服务所涉及到的重要知识点