题解 | #查找#
查找
https://www.nowcoder.com/practice/8e0c0e8c78944847be9bca54b59d713f
#include<bits/stdc++.h> using namespace std; int main(){ set<int>s; int n,m,r; cin>>n>>m; for(int i=0;i<n;i++) { cin>>r; s.insert(r); } int y; for(int i=0;i<m;i++) { cin>>y; auto it=s.upper_bound(y);//upper_bound() 返回的是一个迭代器,指向第一个大于 val 的元素。如果不存在这样的元素,它将返回 end() 迭代器,表示超出 set 范围。 if(it!=s.end()) cout<<*it<<endl; else cout<<"-1\n"; } //write your code here...... return 0; }