Week2-Day4 ##排序##

合并区间

https://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a

我们将区间按左区间进行排序,然后比较l区间和r区间是否存在交集

当存在交集时,我们更新当前l区间的end值,直到区间不存在交集。
循环结束说明已经完成了一个区间的合并,我们将此时l区间存下来,并把l移动到r的位置开始下一个区间的合并

/**
 * struct Interval {
 *	int start;
 *	int end;
 *	Interval(int s, int e) : start(start), end(e) {}
 * };
 */
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param intervals Interval类vector 
     * @return Interval类vector
     */
    vector<Interval> merge(vector<Interval>& intervals) {
        int l=0,r=0;
        vector<Interval>ans;
        //按照左区间排序,相同时排序较小的右区间
        sort(intervals.begin(),intervals.end(),[&](Interval&i,Interval&j){
            return i.start == j.start? i.end < j.end : i.start < j.start;
        });
        int n=intervals.size();
        while(r<n){
			//合并区间有交集的
            while(r<n && intervals[r].start <= intervals[l].end ){
                intervals[l].end=max(intervals[l].end,intervals[r].end);
                r++;
            }
            ans.push_back(intervals[l]);
            l=r;
        }
        return ans;
    }
};

周周打卡图粘贴处 alt

#和牛牛一起刷题打卡#
全部评论

相关推荐

10-28 11:44
已编辑
地平线_HR
地平线上市啦,市值600亿左右!大家有offer的完全可以考虑。目前市场份额国内双第一,国内自动驾驶认可度非常高。欢迎大家的加入!!!!!!!!
我已成为0offer的糕手:别卡学历,是我不想投?秋招第一份感谢信就你家我也没办法啊
投递地平线等公司10个岗位 >
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
投递大华股份等公司10个岗位
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务