题解 | #小sun的假期#

小sun的假期

https://ac.nowcoder.com/acm/problem/52066

题目大意:

找出n天中m个安排后1~n中没有安排的天数的最大连续值

思路:

类似于区间合并,不过不用合并这个步骤,只用上个区间的r 和下个区间的l维护ans就行

代码实现:

#include "iostream"
#include "vector"
#include "algorithm"

using namespace std;
const int N = 1e5 + 10;
typedef pair<int, int> PII;
vector<PII> a;

int main(){
    int n, m;
    cin >> n >> m;
    int l, r;
    for(int i = 1; i <= m; i ++){
        cin >> l >> r;
        a.push_back({l, r});
    }

    sort(a.begin(), a.end());
    int ans = 0;
    int lr = a[0].second;
    for(int i = 1; i < m; i ++){

        if(a[i].first > lr){
            ans = max(ans, a[i].first - lr - 1);
        }
        lr = max(lr, a[i].second);
    }
    ans = max(ans, a[0].first - 1);
    ans = max(ans, n - lr);

    cout << ans << endl;

    return 0;
}
团队的题解 文章被收录于专栏

简单记录一些团队朋友们和自己的题解

全部评论

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务