题解 | #查找#
查找
https://www.nowcoder.com/practice/d93db01c2ee44e8a9237d63842aca8aa
408必学二分查找 #include<iostream> #include<algorithm> using namespace std; int arr1[100]; int arr2[100]; bool binarysearch(int n, int target) //实现二分查找 { int left = 0; int right = n - 1; while(left <= right) { int mid = (left + right) / 2; if (arr1[mid] < target) { left = mid + 1; } else if (target < arr1[mid]) { right = mid - 1; } else return true; //查找成功 } return false; } int main() { int n, m; while (cin >> n) { for (int i = 0; i < n; i++) { cin >> arr1[i]; } cin >> m; for (int i = 0; i < m; i++) { cin >> arr2[i]; } sort(arr1, arr1 + n); //将数组排序 for (int i = 0; i < m; i++) { if (binarysearch(n, arr2[i])) cout << "YES" << endl; else cout << "NO" << endl; } } }