题目意思大概是这样的:给定两个大数组(1w以上1亿以下),用最有效的方法找出来两个数组的交集。 对于这道题,我有一个思路就是,先对数组进行排序,然后用两个指针在已排序的数组上轮流指向头结点,进行比较。 比较亮的地方,就是在于这个比较的方式了。 首先,比较的时候,要先确定两个指针指向的内用是 ...
基本上在面试的时候,会具体到两个int数组,或string数组。具体也就是讨论算法。 首先需要的是和面试的人确认题目的含义,并非直接答题。 然后,可以提出自己的想法,首先最快的是用linq 最好写个函数: 如果是差集合并集的话,可以用如下方法解决: 当然,考算法的话,还需要进一步进行。 基本思路可以口头说明是用两个for 循环,逐个匹配。 T n O n 不要实现,因为O n 的算法不好。 其次稍 ...
2015-11-12 22:33 0 4867 推荐指数:
题目意思大概是这样的:给定两个大数组(1w以上1亿以下),用最有效的方法找出来两个数组的交集。 对于这道题,我有一个思路就是,先对数组进行排序,然后用两个指针在已排序的数组上轮流指向头结点,进行比较。 比较亮的地方,就是在于这个比较的方式了。 首先,比较的时候,要先确定两个指针指向的内用是 ...
...
引言 今天在项目中一个功能要用到两个数组求交集的算法。 大概是这样: 两个表格分别用easyui datagrid实现,要把A表格的一列数据和B表格的一列数据取出来,然后去重,去重后求交集。 那么在计算出的交集中分别根据求出的数据选中两个表格的对应行。 故用到js数组去重和求交集 ...
一般来说int代表一个数字,但是如果利用每一个位 ,则可以表示32个数字 ,在数据量极大的情况下可以显著的减轻内存的负担。我们就以int为例构造一个bitmap,并使用其来解决一个简单的问题:求两个数组的交集 先实现一个bitmap 写一个main方法试验下 得到 ...
快速求出两个数组的交集的算法,如果用循环遍历的方法,其时间复杂度为O(N^N),在面试中一般不考虑这种方法。 这里提供一种快速算法,算法实现步骤如下: 1. 找到arr1的最大数max,创建一个max+1大小的数组result。 2. 以arr1中的值作为result的下标 ...
两个数组:string[] str1 = new string[] { "1", "2", "3", "4", "6", "9", "10" };string[] str2 = new string[] { "1", "3", "4", "6", "8", "11" };求两个数组的相同值 ...
并集: 交集: 差集: ...