为啥有一个例子超时
查看原帖
为啥有一个例子超时
1611694
mao2006楼主2025/2/7 22:32
#include<stdio.h>
int main()
{
    int n,m,a,min,max,mid;
    scanf("%d %d",&n,&m);
    int sd[n],find[m];
    for(a=0;a<n;a++)
        scanf("%d",&sd[a]);
    for(a=0;a<m;a++)
        scanf("%d",&find[a]);
    for(a=0;a<m;a++)
    {
        min=0;
        max=n-1;
        while(min<=max)
        {
            mid=(min+max)/2;
            if(sd[mid]<find[a])
                min=mid+1;
            else if(sd[mid]>find[a])
                max=mid-1;
            else
                break;
        }
        if(min>max)
            printf("-1 ");
        else
        {
            while(mid>0 && sd[mid]==sd[mid-1])
                mid--;
            printf("%d ",mid);
        }
    }
    return 0;
}
2025/2/7 22:32
加载中...