玩命加载中 . . .

查找


http://t.cn/E9g8aaR

描述

输入数组长度 n 输入数组 a[1…n] 输入查找个数m 输入查找数字b[1…m] 输出 YES or NO 查找有则YES 否则NO 。

输入描述:

输入有多组数据。 每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m,n<=100)。

输出描述:

如果在n个数组中输出YES否则输出NO。

示例1

输入:

5
1 5 2 4 3
3
2 5 6

输出:

YES
YES
NO
#define _CRT_SECURE_NO_WARNINGS 1
#include <bits/stdc++.h>
using namespace std;

const int N = 110;
int arr[N];

bool BinarySearch(int n, int target) {//二分查找
	int left = 0, right = n - 1;
	while (left <= right) {
		int middle = (left + right) / 2;
		if (arr[middle] < target)
			left = middle + 1;
		else if (arr[middle] > target)
			right = middle - 1;
		else
			return true;
	}
	return false;
}

int main() {
	int n, m;
	while (cin >> n) {
		for (int i = 0; i < n; ++i)
			cin >> arr[i];
		sort(arr, arr + n);//先按升序排序
		cin >> m;
		for (int i = 0; i < m; ++i) {
			int target;
			cin >> target;
			if (BinarySearch(n, target))
				printf("YES\n");
			else
				printf("NO\n");
		}
	}
	return 0;
}

文章作者: Jack Tim
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Tim !
评论
  目录