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; } };

浙公网安备 33010602011771号