题解 | 查找

查找

https://www.nowcoder.com/practice/d93db01c2ee44e8a9237d63842aca8aa

#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        vector<int> a(n);
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        sort(a.begin(),a.end());
        
        int m;
        scanf("%d",&m);
        int b;
        for(int i=0;i<m;i++){
            scanf("%d",&b);
            int left=0;
            int right=n-1;
            while(left<=right){
                int mid=(left+right)/2;
                if(b==a[mid]){
                    printf("YES\n");
                    break;
                }else if(b<a[mid]){
                    right=mid-1;
                }else{
                    left=mid+1;
                }
            }
            if(left>right){
                printf("NO\n");
            }
        }
    }
    
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务