手写二分,样例对但全WA,求调
查看原帖
手写二分,样例对但全WA,求调
1152154
Chinami_Nagisa楼主2024/8/15 16:41
#include <cstdio>
using namespace std;
int n,m,q;
int a[1000010];
int mid,right,left;
int Find(int x)
{
    right=n-1;
    while(right>left)
    {
        mid=(right+left)/2;
        if(x<=a[mid]) right=mid;    
        else left=mid+1;
    }
    if(a[left]!=x) return -2;
    else return left;
}
int main(){
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++)
        scanf("%d",a+i);
    for(int j=0;j<m;j++)
    {
        scanf("%d",&q);
        printf("%d ",Find(q)+1);
    }
    return 0;
}
2024/8/15 16:41
加载中...