题解 | #查找#

#include<bits/stdc++.h>
#include <vector>
#include <set>
using namespace std;
int find(set<int>& nums, int num);

int main(){
	set<int>s;
	//write your code here......
	int n, m;
    cin >> n >> m;
    // vector<int> reference;
    set<int> nums;
    while(n--) {
        int tmp;
        cin >> tmp;
        nums.insert(tmp);
    }
    while(m--) {
        int tmp;
        cin >> tmp;
        // upper_bound()函数
        if(nums.upper_bound(tmp) != nums.end())
            cout << *nums.upper_bound(tmp) << endl;
        else
            cout << -1 << endl;
    }
	return 0;
}

// int find(set<int>& nums, int num) {
//     // 顺序查找 超时
//     for(auto v : nums) {
//         if(v > num) {
//             return v;
//         }
//     }
//     // 二分查找
//     if(nums.upper_bound(num)){
//         return nums.upper_bound(num);
//     }
   
//     return -1;
// }
全部评论

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务