两个无序数组求公共交集
2017-08-17 21:20
645 查看
百度软件开发面试题:现有数据A[]和数组B[],数组A和B的元素个数可能相差很多,但也可能几乎相同。要求有什么方法能尽快找出数组A和B的交集元素。说明时间和空间复杂性是多少?
方案一:使用两个for循环遍历两个数组,时间复杂度为O(n2),空间复杂度O(1)
方案二:将两个数组排好序,之后设置两个数组的下标i=0,j = 0,从头到尾扫描两个数组中数是否相同,如果不同,较小的数靠后移位,如果相同,则两个下标同时后移,直到其中一个下标到了末尾,则结束。时间复杂度为O(nlogn),空间复杂度O(1)
方案三:对长度较短的数组建立hash表,然后利用较长的数组在hash表中查找是否存在。时间复杂度为O(1),空间复杂度O(min(N,M))
方案一:使用两个for循环遍历两个数组,时间复杂度为O(n2),空间复杂度O(1)
方案二:将两个数组排好序,之后设置两个数组的下标i=0,j = 0,从头到尾扫描两个数组中数是否相同,如果不同,较小的数靠后移位,如果相同,则两个下标同时后移,直到其中一个下标到了末尾,则结束。时间复杂度为O(nlogn),空间复杂度O(1)
方案三:对长度较短的数组建立hash表,然后利用较长的数组在hash表中查找是否存在。时间复杂度为O(1),空间复杂度O(min(N,M))
相关文章推荐
- php 计算两数组交集两个函数
- 在 JavaScript 中,如何求出两个数组的交集和差集?
- 求两个数组的交集
- 将两个无序数组合并为有序链表
- C# Linq获取两个List或数组的差集交集
- 每日一道算法题:两个数组的交集
- C#控制台基础 两个int类型数组,求交集,并集,差集
- Leetcode 350. Intersection of Two Arrays II 两个数组的交集 II
- 求两个有序数组的交集
- 计算两个有序整型数组的交集
- C# Linq获取两个List或数组的差集交集
- 求两个数组的交集
- C语言实现 求两个数组的交集
- 如何计算两个有序整型数组的交集
- 如何计算两个有序整型数组的交集
- POJ 2774 Long Long Message(后缀数组 两个字符串的最长公共字串 )
- python获得两个数组交集、并集、差集的方法
- 两个数组 [n] [m] n>m 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。
- 如何给两个数组求交集
- js取两个数组的交集