题解 | #查找#

查找

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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务