wei shen me chao shi?

P2249 【深基13.例1】查找

dfsgbear2 @ 2023-07-15 20:39:53

#include<bits/stdc++.h>
using namespace std;
int mid,m,n,a[100001],z,k;
int zy(int x,int y,int z){
    while(x<y){
        mid=(x+y)/2;
        if(a[mid]>z)y=mid;
        else x=mid+1;
    }
    return -1;
    if(a[mid]==z)return mid;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        scanf("%d", &a[i]);
    }
    for(int i=0;i<m;i++){
        cin>>z;
        k=zy(0,n,z);
        cout<<k;
    }
}

by sQrtN @ 2023-07-15 20:55:18

emm大概看了眼超时先不说(蒟蒻也不一定找得到),zy函数中的

return -1;//直接返回-1,后面的语句不会执行
if(a[mid]==z)return mid;

这里就有问题,两行代码交换一下


|