题解 | #堆栈的使用#

查找

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

#include<iostream>
#include<cstdio>
#include<algorithm>

using namespace std;

bool Find(int a[],int n,int target){
    int left=0;
    int right=n-1;
    while(left<=right){
        int middle=(left+right)/2;
        if(a[middle]<target){
            left=middle+1;
        }else if(a[middle]>target){
            right=middle-1;
        }else{
            return true;
        }
      
    }
    return false;
    
};


int main()
{
    int n,arr[100];
    while(cin>>n){
        for(int i=0;i<n;i++){
            cin>>arr[i];
            
        }
        sort(arr,arr+n);  
        int m;
        cin>>m;
        for(int i=0;i<m;i++){
            int x;
            cin>>x;
            if(Find(arr,n,x)){
                cout<<"YES"<<endl;
            }else{
                cout<<"NO"<<endl;
            }
        }
    }    
    
    
    return 0;
}
全部评论

相关推荐

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