题解 | #查找#

查找

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

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
   int n,m;
   while(cin>>n){
      int *A = (int*)malloc(sizeof(int)*(n));
      for(int i=0;i<n;i++) cin>>A[i];
      sort(A, A+n);
      cin>>m;
      int *B = (int*)malloc(sizeof(int)*(m));
      for(int i=0; i<m; i++) cin>>B[i];
      for(int i=0;i<m;i++){
        int left=0,right=n-1;
        while(left<=right){
            int mid=(left + right) / 2;
            if(A[mid] == B[i]) {cout<<"YES\n"; break;}
            else if(A[mid] > B[i]) right = mid - 1;
            else left = mid + 1;
        }
        if(left > right) cout<<"NO\n";
      }
   }
   return 0;
}

全部评论

相关推荐

野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务