水题一道,求两个有序集合的交集,全部遍历一次完事
#include<stdio.h>
#include<stdlib.h>
int main()
{
int t;
int *a = malloc(100000 * sizeof(int));
int *b = malloc(100000 * sizeof(int));
scanf("%d", &t);
while (t--)
{
int n, m, i, j, count = 0;
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]);
i = j = 0;
while (i < n && j < m)
{
if (a[i] > b[j])
j++;
else if (a[i] < b[j])
i++;
else
{
count++;
i++;
j++;
}
}
printf("%d\n", count);
}
free(b);
free(a);
return 0;
}