题目大意:
就是找两数组中相同数的个数。。。
解题思路:
二分。。。。
#include<stdio.h>
#define N 1000009
int a[N];
int n,right,left,mid;
int cal(int x)
{
right=n-1;
while(left<=right)
{
mid=(left+right)/2;
if(a[mid]==x){
left=mid;
return 1;
}
if(a[mid]>x)
right=mid-1;
else
left=mid+1;
}
return 0;
}
int main()
{
int m,i,j,ans;
int temp;
while(scanf("%d %d",&n,&m)&&(n+m))
{
ans=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
left=0;
while(m--)
{
scanf("%d",&temp);
ans+=cal(temp);
}
printf("%d\n",ans);
}
}