int st = -2e9, ed = -2e9; //定义区间的左右边界 for (auto seg : segs) { if (ed < seg.first) //该区间和下一个区间没有交集 { if (st != -2e9) res.push_back({st, ed});//特判没有交集的是不是第一个区间是不是最开始维护空区间 st = seg.first, ed = seg.second; //更新区间, 第一次更新区间,直接将第一个区间的左右边界放进来 } else { ed = max(ed, seg.second); //将区间右边界更新为较大的那个值 } }
if (st != -2e9) res.push_back({st, ed}); //将最后一个区间加入