区间合并 (leetcode56)
一:解题思路
二:完整代码示例 (C++版和Java版)
C++代码:
class Solution { public: vector<vector<int>> merge(vector<vector<int>>& intervals) { int n = intervals.size(); vector<vector<int>> res; vector<int> starts; vector<int> ends; for (int i = 0; i < n; i++) { starts.push_back(intervals[i][0]); ends.push_back(intervals[i][1]); } sort(starts.begin(),starts.end()); sort(ends.begin(),ends.end()); for (int i = 0, j = 0; i < n; i++) { if (i == n - 1 || starts[i + 1] > ends[i]) { res.push_back({starts[j],ends[i]}); j = i + 1; } } return res; } };

浙公网安备 33010602011771号