华为题:合并区间

给定一个区间数组 intervals,其中 intervals[i] = [start_i, end_i],请合并所有重叠的区间,并输出合并后的区间。

输入描述

第一行输入一个整数 n,表示区间数量。

接下来 n 行,每行输入两个整数 start 和 end。

输出描述

输出合并后的区间,每行一个区间,按起始位置从小到大排列。

示例 1

输入

text

复制代码
4
1 3
2 6
8 10
15 18

输出

text

复制代码
1 6
8 10
15 18

C++ 解法

cpp

复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;

    vector<pair<int,int>> intervals(n);
    for (int i = 0; i < n; i++) {
        cin >> intervals[i].first >> intervals[i].second;
    }

    sort(intervals.begin(), intervals.end());

    vector<pair<int,int>> ans;

    for (auto& p : intervals) {
        if (ans.empty() || ans.back().second < p.first) {
            ans.push_back(p);
        } else {
            ans.back().second = max(ans.back().second, p.second);
        }
    }

    for (auto& p : ans) {
        cout << p.first << " " << p.second << endl;
    }

    return 0;
}
相关推荐
低频电磁之道1 小时前
C++ 中有符号与无符号类型混用可能导致的问题
开发语言·c++
垆边人似月.1 小时前
华为题:滑动窗口最大值
数据结构·c++·算法
2601_965742221 小时前
AI是怎么判断一家本地商家值得推荐的?云南老板看完这篇就懂了
大数据·人工智能·算法·ai·新媒体运营
小O的算法实验室1 小时前
IEEE TAES,基于DQN 辅助的集群无人机自组网约束多目标重构与优化
人工智能·算法
菩提树下的凡夫2 小时前
OPenCV4.8与OpenCV5.0的区别
c++·opencv
要练八块腹肌2 小时前
map和set介绍与使用
c++
m0_547486662 小时前
《数据结构 (C语言)》期末试卷及答案(10套)2026版
c语言·开发语言·数据结构
_不会dp不改名_2 小时前
leetcode_3727 最大平方交替和
linux·算法·leetcode
白杨尚青2 小时前
C++入门篇(十七):priority_queue 完整模拟实现——仿函数、区间建堆与指针特化(附完整代码仓库)
开发语言·c++·stl·仿函数