1 条题解

  • 0
    @ 2023-6-11 12:22:26

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    int n,m;
    int a[101000],b[101000];
    bool binary_search(int x) {
    	int l=1,r=n;
    	while (l<=r) {
    		int mid=(l+r)>>1;
    		if (a[mid]==b[x])return 1;
    		if (a[mid-1]<b[x]&&a[mid+1]>b[x])return 0;
    		if (a[mid]>b[x])r=mid-1;
    		else l=mid+1;
    	}
    	return 0;
    }
    
    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];
    	sort(a+1,a+1+n);
    	sort(b+1,b+1+m);
    	for(int i=1; i<=m; i++) if(binary_search(i)) cout<<b[i]<<" ";
    }
    
    
    • 1

    信息

    ID
    2768
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者