题解 | 区间合并-2

区间合并-2

https://www.nowcoder.com/practice/9be49b2117b44622ae3cef456dbc7e70

注意有坑 区间的首尾是整形 也就是说 当遇到[1,3] [4,6]这两个区间的时候,是要合并成[1,6]的

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct interval {
    long long a;
    long long b;
};

bool cmp (interval p1, interval p2 ) {
    return p1.a < p2.a;
}

int main() {
    long long index ;
    while (cin >> index) {
        vector <interval> val ;
        interval temp ;
        // read the data in
        for (int i = 0; i < index; i++) { 
            cin >> temp.a >> temp.b;
            val.push_back(temp);
        }
        //sort the data
        sort (val.begin(), val.end(), cmp);
        for (long long i = 1; i < index; i++ ) {
            if (val[i - 1].b+1 >= val[i].a) {
                val[i].a = val[i - 1].a;
                val[i].b = max(val[i - 1].b, val[i].b);
            } else cout << val[i - 1].a << ' ' << val [i - 1].b <<'\n';
        }
        cout << val[index - 1].a << ' ' << val[index - 1].b << '\n';
    }
}

全部评论

相关推荐

北枳的南橘:建议大家务必去和他沟通一下,像极了小学生对你侃侃而谈国际局势😂
找AI工作可以去哪些公司...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务