满江红
查看原帖
满江红
1287953
lr0818楼主2024/10/5 08:40
#include<iostream>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    int a[n+1],b[m+1];
    for (int i=1;i<=n+1;i++) cin>>a[i];
    for (int i=1;i<=n+1;i++){
        cin>>b[i];
        int mmin=1,mmax=n+1,mc=0,s=0;
        while (n--){
            mc=(mmin+mmax)/2;
            if (a[mc]==b[i]){ 
                s=mc; 
                break;
            }
            else if (a[mc]>b[i]) mmax--;
            else mmin++;
        }
        if (s>0) cout<<s<<endl;
        else cout<<-1<<" ";
    }
}

思路感觉没问题

2024/10/5 08:40
加载中...