1378 求三个数组中的共同元素 C语言
来源:互联网 发布:linux 匹配文件内容 编辑:程序博客网 时间:2024/05/17 22:55
问题 G: 求共同元素(数组)
时间限制: 1 Sec 内存限制: 128 MB
提交: 251 解决: 80
[提交][状态][讨论版]
题目描述
输入三个数组,求三个数组中的共同元素。要求算法的时间复杂度尽可能小。
提示:可使用C++排序函数sort。头文件:algorithm.h。
输入
测试次数t
每组测试数据三行,分别为三个数组的数据,格式如下:
数组大小n,后跟n个数据
输出
输出每组测试数据的共同元素个数和共同元素(升序顺序输出)。如果没有,仅输出0:。
样例输入
2
4 43 1 6 89
3 12 4 43
8 34 1 2 6 43 56 90 8
5 1 2 3 4 8
8 10 2 43 546 2 43 8 20
4 50 40 2 8
样例输出
1:43
2:2 8
#include<stdio.h>int main() { void sort(int *a, int l); int t,a[25],b[25],c[25]; int i,j,k,m,n[25],num,value[25],valueP[25]; scanf("%d",&t); while(t--) { for(i=0; i<3; i++) { scanf("%d",&n[i]); switch(i) { case 0: for(j=0; j<n[i]; j++) { scanf("%d",&a[j]); } break; case 1: for(j=0; j<n[i]; j++) { scanf("%d",&b[j]); } break; case 2: for(j=0; j<n[i]; j++) { scanf("%d",&c[j]); } break; } } //sort sort(a,n[0]); sort(b,n[1]); sort(c,n[2]); num =0; //bianli for(i=0; i<n[0]; i++) { for(j=0; j<n[1]; j++) { for(k=0; k<n[2]; k++) { if(a[i]==b[j]&&a[i]==c[k]) { value[num]=a[i]; num++; } } } } if(num==0) { printf("0:\n"); } else { //value qu chong if(num!=1) { for(i=0,j=0; i<num; j++,i++) { if(i==0&&j==0) { valueP[i]=value[j]; } else if(valueP[i-1]==value[j]) { num--; i--; } else { valueP[i]=value[j]; } } } else { //num ==1 valueP[0]=value[0]; } printf("%d:",num); for(i=0; i<num; i++) { if(i==num-1) { printf("%d\n",valueP[i]); } else { printf("%d ",valueP[i]); } } } } return 0;}void sort(int a[], int l) { int i, j; int v; for(i = 0; i < l - 1; i ++) //mao pao fa for(j = 0; j < l-i-1; j ++) { if(a[j] > a[j+1]) { 。 v = a[j]; a[j] = a[j+1]; a[j+1] = v; } }}/************************************************************** Problem: 1378 Language: C++ Result: 正确 Time:0 ms Memory:800 kb****************************************************************/
阅读全文
0 0
- 1378 求三个数组中的共同元素 C语言
- C语言求数组元素中的最小值
- 三个数组的共同元素
- C语言-求三个数中的最大值
- 数据结构面试题总结4——数组:求两个有序数组中的共同元素
- 寻找三个有序数组的共同最小元素
- C语言代码6(判断两数组有无共同元素)
- C语言-删除数组中的元素
- C语言中的数组元素查找
- C语言 求旋转数组的最小元素
- C语言,求两个有序数组的公共元素
- C语言求二维数组a所有偶数元素之和
- 黑马程序员-C语言之求三个数中的最大值的几种C语言写法
- 查找三个数组中的共有元素
- C语言:求三个数的最大值
- C语言中查找数组中的元素(WIN)
- C 语言中的元素指针与一维数组指针
- C语言数组,将元素中的数字从大到小排列
- hibernate 报错Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
- 巩固与修炼(三)
- 微信公众号开发日志(一)
- Java 自定义异常
- 重叠相加法和重叠保留法的原理
- 1378 求三个数组中的共同元素 C语言
- spring与jdbc的结合的示例
- 用GDB调试程序(一)
- 使用Mybatis时增删改查多参数时Parameter 'xx' not found. 解决方法
- ElasticSearch安装
- POJ 1410 Intersection <计算几何(线段相交判断)>
- Hbase伪分布式安装
- 习题5.1
- java基础:对象的向上转型/向下转型; 基本类型的 向上转型/向下转型实例(窄化)