为啥二分明明已经写了return -1,可依然出不来呢,并且TLE了
查看原帖
为啥二分明明已经写了return -1,可依然出不来呢,并且TLE了
692647
tanghg楼主2022/6/12 09:09

rt

#include <iostream>
typedef long long ll;
using namespace std;
const long long MAX=10000;
ll n,a[MAX];
ll find_n(ll num){
    ll l=1,r=n+1;
    while (l<r){
        ll middle=l+(r-1)/2;
        if(a[middle]>=num)r=middle;
        else l=middle+1;
    }
    if(a[l]==num)return l;
    else return -1;
}
int main(){
    ios::sync_with_stdio(false);
    ll m,num;
    cin>>n>>m;
    for (int i = 1; i <= n; ++i) {
        cin>>a[i];
    }
    for (int i = 0; i < m; ++i) {
        cin>>num;
        cout<<find_n(num)<<" ";
    }
    return 0;
}
2022/6/12 09:09
加载中...