题解 | #查找#

查找

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

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 101;
int a[N], b[N];

bool find(int a[], int n, int x){
    int l = 0, r = n - 1;
    while (l <= r) {
        int mid = l + r >> 1;
        if (a[mid] < x) {
            l = mid + 1;
        }else if (a[mid] > x) {
            r = mid - 1;
        }else {
            return true;
        }
    }
    return false;
}

int main() {
    int n, m;
    while (cin >> n) {
        for(int i = 0; i < n; i ++) cin >> a[i];
        cin >> m;
        for(int i =0; i < m; i ++) cin >> b[i];
        sort(a, a + n);
        for(int i = 0; i < m; i ++){
            bool res = find(a, n, b[i]);
            if(res) cout << "YES" << endl;
            else cout << "NO" << endl;
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
_mos_:我以为手抄报简历就已经很顶了,没想到还有表格简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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