首页 > 其他分享 >每日一题-区间合并

每日一题-区间合并

时间:2022-11-10 23:45:29浏览次数:30  
标签:int res 合并 mid second intervals 区间 一题 first

Merging Intervals

sort(a.begin(), a.end());
vector<pair<int, int> > res;
for (int i = 0; i < n; ++i) {
    int l = 0, r = res.size() - 1;
    
    while (l < r) {
        int mid = (l + r) >> 1;
        if (res[mid].second >= a[i].first) {
            r = mid;
        } else {
            l = mid + 1;
        }
    }
    
    if (l < (int)res.size() and res[l].second >= a[i].first) {
        res[l].first = min(res[l].first, a[i].first);
        res[l].second = max(res[l].second, a[i].second);
    } else {
        res.push_back(a[i]);
    }
}
	
cout << res.size() << '\n';

Description

Given several intervals, u are asked the number of intervals if all intervals are merged. We can merge two intervals if they have overlapping parts.

1.First sort the intervals by left endpoint first.
2.Add intervals into an container one by one, every time check if there exist an interval overlapping the one now adding, if it is, modify the interval into a bigger one, else simply add it. I use binary search to check it.

标签:int,res,合并,mid,second,intervals,区间,一题,first
From: https://www.cnblogs.com/whose-dream/p/16879231.html

相关文章

  • 解决合并分支代码冲突
    1,当执行gitmerge合并代码报冲突的时候首先看到是哪个文件,在vscode里面打开,留下想要的那行代码2,修改完之后在当前的分支上进行add,commit,push这些操作3,gitmerge需要合......
  • LeetCode 763. 划分字母区间
    1、一上来先遍历数组,找到每个字母最后出现的位置。2、再次遍历数组,保持一个last,表示当前至少应该在哪里分割classSolution{public:vector<int>partitionLabel......
  • 前端图片合并
    上一篇中说到了电子签名,需求是用户签完名需要把名字放在某一个需要签名的位置,这里采用canvas进行图片的合并操作:话不多说,直接上代码<template><viewclass="ca......
  • [leetcode每日一题]11.10
    864. 获取所有钥匙的最短路径给定一个二维网格 ​​grid​​ ,其中:'.' 代表一个空房间'#' 代表一堵'@'小写字母代表钥匙大写字母代表锁我们从起点开始出发,一次移动是指......
  • MySQL合并查询结果(二十一)
    勿以恶小而为之,勿以善小而不为--------------------------刘备上一章简单介绍了MySQL的子查询(二十),如果没有看过,​​请观看上一章​​一.合并查询结果多条sql查询语句......
  • Python数据分析,批量合并表格
    日常在处理数据时,数据表格常常以固定的格式,这些表格都具有相同的列名,通过对数据表进行整合,可以极大的提高我们的工作效率。本节使用两种方法对于表格批量处理,一种是常规的菜......
  • 每日一题算法
    数字在升序数组中出现的次数描述给定一个长度为n的非降序数组和一个非负数整数k,要求统计k在数组中出现的次数解析排序数组的查找问题首先考虑二分法使用二分法......
  • 每日一题-双指针
    判断子序列intj=0,i=0; while(i<mandj<n){if(b[i]==a[j]){j++;}i++;}cout<<(j==n?"Yes":"No");description......
  • 每日一题之请描述Vue组件渲染流程
    组件化是Vue,React等这些框架的一个核心思想,通过把页面拆成一个个高内聚、低耦合的组件,可以极大程度提高我们的代码复用度,同时也使得项目更加易于维护。所以,本文就来分......
  • 【luffy】协同开发,冲突解决,线上分支合并,pycharm操作git,前端首页组件编写,首页轮播图功
    目录1.协同开发2.冲突解决2.1多人同一分支开发出现冲突2.2分支合并出现冲突3.线上分支合并(pr,mr)4.pycharm操作git4.1clone4.2gitadd4.3gitcommit4.4gitpull......