题解 | #查找#
查找
https://www.nowcoder.com/practice/d93db01c2ee44e8a9237d63842aca8aa
#include <bits/stdc++.h> using namespace std; int a[101]; bool find(int n,int x){ int left=0; int right=n-1; while(left<=right){ int mid=(left+right)/2; if(x==a[mid]) return true; if(a[mid]>x){ right=mid-1; } if(a[mid]<x){ left=mid+1; } } return false; } int main() { int n,m; while(cin>>n){ for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); cin>>m; for(int i=0;i<m;i++){ int z; cin>>z; bool outcome=find(n,z); if(outcome) printf("YES\n"); else printf("NO\n"); } } } // 64 位输出请用 printf("%lld")