找两个数组的交集

找两个数组的交集

原题是:给定两个数组,编写一个函数来计算它们的交集。

示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [9,4]
说明:
输出结果中的每个元素一定是唯一的
我们可以不考虑输出结果的顺序。

解题步骤:先定义三个数组(a[],b[],c[]),a、b数组用于接受输入,c数组里的元素先开始全都置0,然后开始遍历数组a,使得以a数组元素值为下标的c数组中对应的元素变成1(c[a[k]]=1),然后开始对b数组进行遍历,这里判断条件很关键,当(c[b[l]]==1)时说明此时这个元素a数组中也出现过,然后将这个元素输出,注意在输出时一定要把c数组这个元素位置置0,因为题中要求输出元素只能是唯一的。

具体代码如下:

#include<stdio.h>
#define N 100
int main()
{
	int c[N]={0};
	int a[20],b[20];
	int i=0,j=0,k,l;
	printf("请输入第一个数组\n"); 
	while(i<20)
	{
		scanf("%d",&a[i]);
		if(a[i]==-1)//设置输入-1为结束条件
			break;
		i++;
	}
	printf("请输入第二个数组\n");
	while(j<20)
	{
		scanf("%d",&b[j]);
		if(b[j]==-1)
			break;
		j++;
	}
	for(k=0;k<i;k++)
	{
		c[a[k]]=1;
	}
	for(l=0;l<j;l++)
	{
		if(c[b[l]]==1)
		{
			c[b[l]]=0;//保证输出结果唯一
			printf("%d  ",b[l]);	
		}
	}
	return 0;
}

示例二结果运行如下:

在这里插入图片描述

如有任何问题和疑惑可以在下方评论,或联系作者qq1748708966。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

囿于之间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值