首先找连个数组的交集,分别指定i,j指向连个数组头部,对i,j进行

比较,i的值大于j的值,j++;i的值小于j的值,i++;相等,则保存;​

然后再求连个交集的交集;复杂度应为O(M+N+P+Q)​

//求数组a,b交集;交集存于a,并返回k,k为交集长度;

 1 //求数组a,b交集;交集存于a,并返回k,k为交集长度;
 2 Intersection(int a[],int b[],int a_size,int b_size)
 3 {
 4     if(a_size<=0&&b_size<=0) exit(0);
 5     int i=0,j=0,k=0;
 6     while(i<a_size&&j<b_size)
 7     {
 8         if(a[i]>a[j]) j++;
 9         else if(a[i]<a[j]) i++;
10         else
11         {
12             a[k]=a[i];
13             i++;
14             j++;
15             k++;
16         }
17     }
18     return k;
19 }

//求a,b,c,d的交集;交集存于a,并返回k,k为交集长度;
Intersection_4(int a[],int b[],int c[],int d[],int a_size,int b_size,int c_size,int d_size)
{a.size=Intersection(a,b,a_size,b_size);c.size=Intersection(c,d,c_size,d_size);return Intersection(a,c,a_size,c_size);
}

转载于:https://www.cnblogs.com/liji5112/p/4331028.html

/*携程面试*/四个数组,都已经排好序,找出四个数组的交集相关推荐

  1. python查找两个数组中相同的元素_找出两个数组的相同元素,最优算法?

    在做新旧接口交替过程中,遇到了老接口和新接口json数据有些不一致的情况,需要比较两个json对象,把相同的元素赋其中一个json对象中变量的值.而且其中一个json最后输出格式还需要改变下属性名,思 ...

  2. 携程python工程师_携程面试之后的一些感想

    最近工作比较忙,没有时间思考和学习,再加上报了个驾校,准备科目三,落下许多. 前一段时间去携程面试,曾经去过一次,不是有意黑携程,对携程的印象越来越差. 1.办公环境,感觉比较拥挤,没有个人空间 台式 ...

  3. Java 找出四位数的所有吸血鬼数字 基础代码实例

    /**  * 找出四位数的所有吸血鬼数字  * 吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序.  * 以两个 ...

  4. 数组合并假设有 n 个长度为 k 的已排好序(升序)的数组,请设计数据结构和算法,将这 n 个数组合并到一个数组,且各元素按升序排列。即实现函数-C-icoding-排序-数据结构

    数组合并 假设有 n 个长度为 k 的已排好序(升序)的数组,请设计数据结构和算法, 将这 n 个数组合并到一个数组,且各元素按升序排列.即实现函数: void merge_arrays(const ...

  5. JS案例——找出两个数组中的不同元素或对象、数组去重

    一.找出两个数组中的不同元素或对象 1. 数据 var arr1 = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏" ...

  6. 找出两个数组相同的元素

    题目:找出两个数组(有重)相同的元素,两种方法 public class 出两个数组相同的元素 { public static void main(String[] args) { // TODO A ...

  7. 汇编语言(十五)之找出两个数组中的相同元素

    找出两个数组中的相同元素,并且输出 程序运行: 代码: datas segmentA dw -1,-2, 3, 4, 5, 6, 7, 8, 9, 10,-11, 12, 13, 14, 15ACou ...

  8. 经典例题:判断给定数组是否已经排好序

    判断给定数组是否已经排好序 输入纯数字.纯大写字母.纯小写字母或者其三者的混合,若为纯数字序列,则按数字大小顺序判断,若为混合序列,则按ASCII表的顺序大小判断. 例如: 输入:1 3 a b A ...

  9. js 快速找出两个数组中的不同元素或对象

    js 快速找出两个数组中的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1 ...

  10. 写一个函数找出一个整数数组中,第二大的数

    题目:写一个函数找出一个整数数组中,第二大的数. 算法分析: 1)假设数组中的前两个元素就是最大和第二大,即max和smax: 2)从数组的第二个元素开始遍历数组,当有元素大于max的时候,将max赋 ...

最新文章

  1. 全球人形机器人接连突破 拟人度越来越高
  2. 计算机控制刘世荣习题,谢谢你,曾经允许我不爱刘世荣①星期一的早晨,我紧张而又兴奋,因...
  3. ehcache 清除缓存_如何设计一个本地缓存
  4. 话里话外:企业内控的灵魂——企业文化
  5. Object_C与JavaScript交互使用总结
  6. 如何快速在 Springboot 中集成拦截器? | 原力计划
  7. php怎么代表不同行,php – 单击按钮时显示数据库的不同行
  8. 四则运算2之设计思路篇
  9. linux ssh 双机互信
  10. 默认smtp虚拟服务器,轻松架设自己的SMTP服务器
  11. http中get和post详解
  12. apache ActiveMQ反序列化漏洞(CVE-2015-5254)复现
  13. c语言步长,(转+原创)c语言那些细节之a+1和a+1的区别 ,指针的步长问题。
  14. Foxmail登录各种邮箱方法汇总
  15. SQL REGEXP_SUBSTR的用法
  16. RabbitMq集成SpirngBoot
  17. JAVA考试多选题判断得分
  18. 小程序轮播图_厉害!对准不认识的野生菌拍个图,云大学生设计的这个小程序就能自动识别…...
  19. 实例004 计算正方形的边长
  20. xlrd python读取excel 编码错误_python读取excel数据报xlrd.biffh.XLRDError错误原因

热门文章

  1. java ArrayList 概述 与源码简析
  2. 内置函数二---作业
  3. linux如何安装django
  4. js检查元素是否包括在数组中
  5. [转] jQuery 选择器
  6. 内联函数 error LNK2001: unresolved external symbol
  7. LeetCode--41.缺失的第一个正数(C)
  8. Python for循环语句总结
  9. Dart 5-Day
  10. 计算机初赛基础知识,备战初赛计算机基础知识