輸入數組長度 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
解題思路:
數組排序之後二分查找即可~
AC代碼:
#include<iostream>
#include<algorithm>
using namespace std;
int num[101];
int n, m, goal;
bool find(int x) {
int l = 1, r = n;
while (r >= l) {
int mid = (l + r) / 2;
if (num[mid] == goal)return true;
else if (num[mid] > goal) {
r = mid - 1;
}
else l = mid + 1;
}
return false;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> num[i];
}
cin >> m;
sort(num + 1, num + 1 + n);
while (m--) {
cin >> goal;
if (find(goal)) {
cout << "YES" << endl;
}
else cout << "NO" << endl;
}
return 0;
}