Week 7算法分析作业

来源:互联网 发布:电视剧直播软件 编辑:程序博客网 时间:2024/05/17 23:21

Week 7算法分析作业

LeetCode题目 56. Merge Intervals

Given a collection of intervals, merge all overlapping intervals.
For example,
Given [1,3],[2,6],[8,10],[15,18],
return [1,6],[8,10],[15,18].
给定一个区间的集合,将重叠的区间合并

我的解法

使用vector存放需要的数据,将所有的元素排序后合并对应的区间,复杂度为O(N)

vector<Interval> merge(vector<Interval>& ins) {        if (ins.empty()) return vector<Interval>{};        vector<Interval> res;        sort(ins.begin(), ins.end(), [](Interval a, Interval b){return a.start < b.start;});        res.push_back(ins[0]);        for (int i = 1; i < ins.size(); i++) {            if (res.back().end < ins[i].start) res.push_back(ins[i]);            else                res.back().end = max(res.back().end, ins[i].end);          }        return res;}

感想:

这道题感觉思路很清晰,但是操作起来很麻烦,容易乱

原创粉丝点击