#include<stdio.h>
int main()
{
int n,m,flag=0;
int x;
int a[100001]={0},b[100001]={0};
scanf("%d %d",&n,&m);
以集合A所有元素作为数组下标映射值成1
for (int i = 0; i < n; i++)
{
scanf("%d", &x);
a[x] = 1;
}
以集合B所有元素作为数组下标映射值成0
for (int j = 0; j < m; j++)
{
scanf("%d", &x);
a[x] = 0;
}
经过上面两个for循环--A里面有B也有的 从1->0 B其余元素仍为0 现在为1的就是A-B的元素
flag = 0;
for (int i = 0; i < m + n; i++)
{
if (a[i] == 1)
flag = 1;
}
if (flag == 0)
{
printf("0");
return 0;
}
flag作为标记 遍历A 如果都为0 输出0
否则输出值为1的下标
else
{
for (int i = 0; i < m + n; i++)
{
if (a[i] == 1)
printf("%d ", i);
}
printf("\n");
}
return 0;
}
集合减法【新思路】
最新推荐文章于 2024-05-21 20:29:42 发布