大佬帮忙指教一下(优化一下),80pts,1TLE,剩下AC
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int n,m;
cin>>n>>m;
int a[n],b[m];
for(int i=0;i<n;i++)
cin>>a[i];
for(int j=0;j<m;j++)
cin>>b[j];
for(int j=0;j<m;j++)
{
int flag=0,l=0,r=n-1;
while(l<=r)
{
int mid=(l+r)/2;
if(b[j]>a[mid])
{
l=mid+1;
}
if(b[j]<a[mid])
{
r=mid-1;
}
if(b[j]==a[mid])
{
int mid1=mid;
while(a[mid1]==a[mid]&&mid1>=0)//找第一次出现的数
{
mid1--;
}
cout<<mid1+2<<" ";
flag=1;
break;
}
}
if(flag==0)
{
cout<<-1<<" ";
}
}
return 0;
}
谢谢!!!