2 条题解

  • 3
    @ 2024-7-26 14:09:36
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    int n,t,m,mid;
    int a[100005],b[100005];
    int main()
    {
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        for(int i=1;i<=m;i++)
            cin>>b[i];
        int k=1;
        sort(b+1,b+1+m);
        for(int i=1;i<=n;i++)//本应该是二维数组查找,但数据太大了,所以用二分
        {
            int l=1;
            int h=m;
            while(l<=h)
            {
                mid=(l+h)/2;
                if(b[mid]==a[i]) {cout<<a[i]<<' ';break;}
                else if(b[mid]>a[i]) h=mid-1;
                else if(b[mid]<a[i]) l=mid+1;
                else break;
            }
        }
        return 0;
    }
    

    信息

    ID
    2206
    时间
    1000ms
    内存
    125MiB
    难度
    4
    标签
    递交数
    143
    已通过
    68
    上传者