集合运算
问题描述
给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。
输入格式
第一行为一个整数n,表示集合A中的元素个数。
第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。
第三行为一个整数m,表示集合B中的元素个数。
第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。
集合中的所有元素均为int范围内的整数,n、m<=1000。
第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。
第三行为一个整数m,表示集合B中的元素个数。
第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。
集合中的所有元素均为int范围内的整数,n、m<=1000。
输出格式
第一行按从小到大的顺序输出A、B交集中的所有元素。
第二行按从小到大的顺序输出A、B并集中的所有元素。
第三行按从小到大的顺序输出B在A中的余集中的所有元素。
第二行按从小到大的顺序输出A、B并集中的所有元素。
第三行按从小到大的顺序输出B在A中的余集中的所有元素。
样例输入
5
1 2 3 4 5
5
2 4 6 8 10
1 2 3 4 5
5
2 4 6 8 10
样例输出
2 4
1 2 3 4 5 6 8 10
1 3 5
1 2 3 4 5 6 8 10
1 3 5
样例输入
4
1 2 3 4
3
5 6 7
1 2 3 4
3
5 6 7
样例输出
1 2 3 4 5 6 7
1 2 3 4
1 2 3 4
思路:用flag数组标记集合a与集合b相交的数在集合a中位置,在查找中,如果a[i]=b[j],flag标记为1,i、j分别自加,同时元素入并交Union集合,
否则,小的数入并交集合,同时下标加1;当结束查找时,可能其中一个集合还有数未比较,作以下判断,i<n(集合a中元素个数),a集合剩下元素入Union集合,
否则b集合中剩下元素入Union集合
#include <iostream> #include <algorithm> int a[1000],b[1000]; int Union[2001];//并 int flag[1000];//b与a交的数在a中下标的标记 using namespace std; int main() { int n,m; int i,j,t; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&m); for(i=0;i<m;i++) scanf("%d",&b[i]); sort(a,a+n); sort(b,b+m); //确定交集、并集和余集 t = i = j = 0; while(i < n && j < m) { if(a[i] < b[j]) { Union[t++] = a[i]; i ++; } else if(a[i] == b[j]){ flag[i] = 1;//表示a中下标为i的数存在交集中 Union[t++] = a[i]; i ++; j ++; } else{ Union[t++] = b[j]; j ++; } } if(i<n)//剩下的并集的部分在集合a中,否则在b中 { for(j=i;j<n;j++) Union[t++] = a[j]; } else{ for(i=j;i<m;i++) Union[t++] = b[i]; } //输出交、并、余 j = 0; for(i=0;i<n;i++) if(flag[i]) { j ++; printf("%d ",a[i]); } if(j)//集合不为空才输出换行 printf("\n"); for(i=0;i<t;i++) printf("%d ",Union[i]); printf("\n"); for(i=0;i<n;i++) if(!flag[i]) printf("%d ",a[i]); printf("\n"); return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率