lower_bound和upper_bound问题

时间:2018-01-06 15:17:45

标签: c++ algorithm sorting

我有一项任务是查找多个数字(n)是否在多个区间(m)中,并且我指向lower_bound和upper_bound以比O(nm)更快地进行检查 ,像O((n + m)* log(n))。

#include <bits/stdc++.h>
using namespace std;


int main()
{
    cin.tie(0);
    ios_base::sync_with_stdio(0);
    cout.tie(0);
    int n, m, temp, temp1;
    vector <pair<int, int>> uogienes;
    vector <int> erskeciai;

    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> temp;
        erskeciai.push_back(temp);
    }
    temp = 0;
    for (int i = 0; i < m; i++) {
        cin >> temp >> temp1;
        uogienes.push_back(make_pair(temp, temp1));
    }
    for (int i = 0; i < m; i++) {
        temp = 0;
        for (int h = 0; h < n; h++) {
            if (uogienes[i].first <= erskeciai[h] && uogienes[i].second >= erskeciai[h]) {
                temp++;
            }
        }
        cout << temp << "\n";
    }
    return 0;
}

现在我不知道如何进一步推进lower_bound或upper_bound,因为它们对我来说都是新手,迭代器等也是如此。任何人都可以帮我完成这项任务吗?

0 个答案:

没有答案