LeetCode Insert Interval insert interval in the given list and rest is same as done in merge interval
/**
* Definition for an interval.
* struct Interval {
* int start;
* int end;
* Interval() : start(0), end(0) {}
* Interval(int s, int e) : start(s), end(e) {}
* };
*/
class Solution {
public:
vector<Interval> insert(vector<Interval>& intervals, Interval newInterval) {
vector <Interval> ans;
if(intervals.size()==0){
ans.push_back(newInterval);
return ans;
}
vector < Interval > :: iterator it,it1;
it=intervals.begin();
while(it!=intervals.end() && (it)->start <= newInterval.start)
it++;
intervals.insert(it,newInterval);
it=intervals.begin();
it1=intervals.begin();
it1++;
while(it!=intervals.end() && (it1)!=intervals.end()){
if((it)->end < (it1)->start){
ans.push_back((*it));
it=it1;
it1++;
}
else if((it)->end >= (it1)->end){
it1++;
}
else
{
(it)->end=(it1)->end;
it1++;
}
}
if(it!=intervals.end())
ans.push_back((*it));
return ans;
}
};
No comments:
Post a Comment