题解 | #查找#

查找

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

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


// int main() {
//     int arr[110]={0};
//     int sea[110]={0};

//     int n;
//     while(scanf("%d",&n)!=EOF){

//         for(int i=0;i<n;++i){
//             scanf("%d",&arr[i]);
//         }
//         int x;
//         scanf("%d",&x);
//         for(int i=0;i<n;++i){
//             scanf("%d",&sea[i]);
//         }

//         sort(arr,arr+n);

//         for (int i=0;i<x;++i){
//             bool flag = false;
//             int left =0;
//             int right = n-1;
//             int idx = sea[i];
        
//         while(left<=right){
//             int mid = (left+right)/2;
//             if(arr[mid] == idx){
//                 flag = true;
//                 printf("YES\n");
//                 break;
//             }
//             else if(arr[mid] >idx){
//                 right = mid-1;
//                 mid = (left+right)/2;
//             }
//             else{
//                 left = mid+1;
//                 mid = (left+right)/2;
//             }
//         }
//         if(!flag){printf("NO\n");}
//         }
//     }
// }
// 64 位输出请用 printf("%lld")
bool search(int arr[110],int n, int x){
    int left =0;
    int right = n-1;
    while(left <=right){
        int mid = (left+right)/2;
        if (arr[mid]==x){
            return true;
            break;
        }
        else if(arr[mid]>x){
            right = mid-1;
            mid = (left+right)/2;
        }
        else{
            left = mid+1;
            mid = (left+right)/2;
        }
    }
    return false;
}


int main(){
    int n,x,array[110],sea[110];
    scanf("%d",&n);
    for (int i=0;i<n;++i){
        scanf("%d",&array[i]);
    }
    scanf("%d",&x);
    for (int i=0;i<x;++i){

        scanf("%d",&sea[i]);
    }
    sort(array,array+n);
    for(int i=0;i<x;++i){
        bool flag;
        int y = sea[i];
        flag = search(array,n,y);
        if(flag){printf("YES\n");}
        else{printf("NO\n");}
    }
}

全部评论

相关推荐

09-23 17:42
门头沟学院 Java
兄弟们我绷不住了,小米要求10月份参加编程考试,20级以下(王腾好像21),正式和外包都得去,还要部门大排名,一巴掌给我抽象的回到大学
flex*1022:雷:我们想了很久,到底怎么样才能让用户满意,让工程师保持手感,经过长达180天的思考,我连夜睡服高管,决定发起内部考试,以编程为主
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-08 18:20
职场水母:这题思路是什么,我目前想的一个暴力方法就是先把这个链表遍历一遍,用哈希表存储出现次数,然后再根据哈希表来一个一个删除节点,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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