0
已解决
张岳恒
资深光能
资深光能
#include<iostream>
#include<cstdio>
using namespace std;
int s,a[1000001],i=1;
void f(int b[],int l,int k){
int m;
if(l<=k){
m=(l+k)/2;
}
if(b[i]==a[m]){
cout<<m<<endl;
}
if(b[i]<a[m]){
f(b,m+1,k);
}
else if(b[i]>a[m]){
f(b,l,m-1);
}
else cout<<-1<<endl;
}
int main(){
int n,m,a[100001],b[100001],l=1,k;
cin>>n>>m;
k=m;
for(i=1;i<=n;i++){
cin>>a[i];
}
for(i=1;i<=m;i++){
cin>>b[i];
}
f(b,l,k);
return 0;
}
为啥RE?求大佬纠错
张岳恒在2020-03-20 12:20:50追加了内容
TLE代码
#include<iostream>
using namespace std;
int s,n;
int f(int b[],int l,int k){
int m,t,r;
while(l<=k){
m=(l+k)/2;
if(b[s]==m) return m;
if(b[s]<m) l=m+1;
else r=m-1;
}
return -1;
}
int main(){
int a[10001],b[100001],l=1,k,m;
cin>>n>>m;
k=n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i];
s++;
cout<<f(b,l,k)<<endl;
}
return 0;
}
我的心情正如我的头像
0
0
0
0