classSolution:defmerge(self, intervals: List[List[int]])-> List[List[int]]:
ans =list()
intervals.sort(key =lambda x : x[0])
start, end = intervals[0][0], intervals[0][1]for i inrange(1,len(intervals)):if intervals[i][0]<= end:
end =max(end, intervals[i][1])else:
ans.append([start, end])
start, end = intervals[i][0], intervals[i][1]
ans.append([start, end])return ans
classSolution{public:staticboolcmp(const vector<int>& a,const vector<int>& b){return a[0]< b[0];}
vector<vector<int>>merge(vector<vector<int>>& intervals){
vector<vector<int>> res;sort(intervals.begin(), intervals.end(), cmp);int start = intervals[0][0];int end = intervals[0][1];for(int i =0; i < intervals.size();++i){if(intervals[i][0]<= end){
end =max(end, intervals[i][1]);}else{
res.push_back(vector<int>{start, end});
start = intervals[i][0];
end = intervals[i][1];}}
res.push_back(vector<int>{start, end});return res;}};