LeetCode 56. 合并区间

问题描述:给出一个区间的集合,请合并所有重叠的区间。

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        int num = intervals.size();
        if (num == 1) return intervals;
        vector<bool> flag(num, true);
        for (int i = 0; i < intervals.size(); ++i) {
            for (int j = i + 1; j < intervals.size(); ++j) {
                if (intervals[i][0] <= intervals[j][0] && intervals[j][0] <= intervals[i][1]) {
                    if (intervals[i][1] <= intervals[j][1]) intervals[j][0] = intervals[i][0];
                    else intervals[j] = intervals[i];
                    flag[i] = false;
                    num--;
                    break;
                }
                if (intervals[j][0] <= intervals[i][0] && intervals[i][0] <= intervals[j][1]) {
                    if (intervals[j][1] <= intervals[i][1]) intervals[j][1] = intervals[i][1];
                    flag[i] = false;
                    num--;
                    break;
                }
            }
        }
        int j = 0;
        for (int i = 0; i < num; ++i, ++j) {
            while (flag[j] == false) ++j;
            intervals[i] = intervals[j];
        }
        intervals.resize(num);
        return intervals;
    }
};

 

posted @ 2020-04-16 08:31  airfy  阅读(116)  评论(0)    收藏  举报