ACM_求交集

Posted 霜雪千年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM_求交集相关的知识,希望对你有一定的参考价值。

求交集

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

输入集合A和B,按大小顺序输出A和B的交集。

Input:

输入包含多组测试数据,每组输入两个整数m,n(1<=m,n<=10^2)分别代表集合A,B的元素个数,再输入集合A,B.

Output:

按大小顺序输出A和B的交集。

Sample Input:

5 7
80 6 18 44 13  
18 39 89 88 6 13 44

Sample Output:

6 13 18 44
解题思路:先对数组a和数组b排序,然后循环两个数组看是否有相等的元素,有的话赋值给c数组,最后统一输出,水过!!!
AC代码:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[105],b[105],c[105];
 4 int main()
 5 {
 6     int n,m,p,q,k;
 7     while(cin>>m>>n){
 8         for(int i=0;i<m;++i)cin>>a[i];
 9         for(int i=0;i<n;++i)cin>>b[i];
10         sort(a,a+m);sort(b,b+n);
11         p=q=k=0;
12         while(p<m && q<n){
13             if(a[p]==b[q]){c[k++]=a[p];p++;q++;}
14             else if(a[p]<b[q])p++;
15             else q++;
16         }
17         for(int i=0;i<k-1;++i)cout<<c[i]<< ;
18         cout<<c[k-1]<<endl;
19     }
20     return 0;
21 }

 

以上是关于ACM_求交集的主要内容,如果未能解决你的问题,请参考以下文章

倒排列表求交集算法 包括baeza yates的交集算法

mysql查询,left join(求并集),where(求交集)

ACM__并查集

ACM_求f(n)

Java里面如何求两个集合的交集

c语言求两个数组的并交集