题解 | #查找#

查找

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

#include <iostream>
#include "cstdio"
#include "algorithm"
#include "map"
using namespace std;
//bool BinarySort(int arr[],int left,int right,int x){
//    int mid;
//    while (left<=right){
//        mid=(left+right)/2;
//        if(arr[mid]==x)
//            return true;
//        if(arr[mid]>x){
//            right=mid-1;
//        } else
//            left=mid+1;
//
//    }
//    return false;
//}
int main() {
//    int n;
//    scanf("%d",&n);
//    int arr[n];
//    for(int i=0;i<n;i++){
//        scanf("%d",&arr[i]);
//    }
//
//    sort(arr,arr+n);  ///二分查找需要有序数组
//
//    int m;
//    scanf("%d",&m);
//    int integer[m];
//    for(int i=0;i<m;i++){
//        scanf("%d",integer+i);
//    }
//    for(int i=0;i<m;i++){
//        if(BinarySort(arr,0,n-1,integer[i]))
//            printf("%s\n","YES");
//        else
//            printf("%s\n","NO");
//    }
//
//
//
//    return 0;
      ///也可以用map

map<int ,int> findIndex;
int m,n;
int arr[100];
while(scanf("%d",&n)!=EOF){
    for(int i=0;i<n;i++){
        scanf("%d",arr+i);
        findIndex[arr[i]]=i;  //将数组元素作为键, 数组元素下标作为值,插入到map中
    }
    scanf("%d",&m);
    int findNum[m];
    for(int i=0;i<m;i++){
        scanf("%d",findNum+i);
    }
    for(int i=0;i<m;i++){

        if(findIndex.find(findNum[i]) == findIndex.end()){
            printf("%s\n","NO");

        } else
            printf("%s\n","YES");
    }
}













    return 0;
}

全部评论

相关推荐

07-14 13:47
门头沟学院 Java
Lynn012:你评估好自己的位置了吗《顶尖应届》
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
S_Holmes:一想到我苦苦追求的迪子私下里却是985的马子,我的心就在滴血😭😭😭
点赞 评论 收藏
分享
Beeee0927:是缅甸园区吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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