code :- just copy and paste
-------------------------------------------
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
//sort the intervals first
if(intervals.size()<=1)
{
return intervals;
}
sort(intervals.begin(),intervals.end(),[](vector<int> &a,vector<int> &b){
return a[0]<b[0];
});
//all overlapping intervals with non overlapping intervals would be here
vector<vector<int>> mergeintervals;
vector<int> startInterval=intervals.at(0);
mergeintervals.push_back(startInterval);
for(auto interval:intervals)
{
int currentStart=startInterval.at(0);
int currentEnd=startInterval.at(1);
int lastStart=interval.at(0);
int lastEnd=interval.at(1);
if(currentEnd>=lastStart )
{
startInterval.at(1)=max(currentEnd,lastEnd);
mergeintervals.back()=startInterval;
}else
{
startInterval=interval;
mergeintervals.push_back(startInterval);
}
}
return mergeintervals;
}
};
Comments
Post a Comment