为什么二分用函数会内存超限(Runtime Error)啊?
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[500005];
int search(int lt,int rt){
int mid=(rt+lt)/2;
if(a[mid]==m)
return 1;
else if(m>a[mid])
lt=mid+1;
else if(m<a[mid])
rt=mid-1;
if(lt>=rt)
return -1;
search(lt,rt);
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>m;
if(search(1,n)==1)
cout<<"yes";
else
cout<<"no";
return 0;
}
把函数内容写到主函数里就AC了
求dalao解答(会关注)