题解 | #查找#二分查找

查找

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

#include <bits/stdc++.h>

using namespace std;

const int maxn = 1000 + 10;

int n,m;
int a[maxn];

bool BinarySearch(int n,int x){
	int l = 0,r = n - 1;
	while(l <= r){
		int m = (r + l) / 2;
		if(a[m] < x){
			l = m + 1;
		}else if(a[m] > x){
			r = m - 1;
		}else{
			return true;
		}
	}
	return false;
}

int main(){
	cin >> n;
	
	for(int i = 0;i < n;i ++){
		cin >> a[i];
	}
	
	sort(a,a + n);
	
	cin >> m;
	while(m --){
		int x;
		cin >> x;
		if(BinarySearch(n,x)){
			cout << "YES" << endl;
		}else{
			cout << "NO" << endl;
		}
	}
	return 0;
}

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
07-02 09:07
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务