//还可以使用map解决查找问题 //也就是说,可以让map中的key对应数组的值 //让map中的value对应数组的值的下标 #include<cstdio> #include<iostream> #include<map> using namespace std; int main() { int n,m; map<int,int> hmap; int a[1000]; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); hmap[a[i]]=i; } scanf("%d",&m); while(m--) { //map的底层是一颗二叉搜索树 int x; scanf("%d",&x); if(hmap.find(x)==hmap.end()){ printf("NO\n"); } else printf("YES\n"); } }
但是它的实质时间复杂度相较于先排序再二分查找还是没变化,又增加了空间复杂度。仅作参考