/**
* 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> res;
int newstart=newInterval.start;
int newend=newInterval.end;
bool already=0;
Interval temp;
int i;
for(i=0;i<intervals.size();i++)
{
if(intervals[i].start>newend)
{
res.push_back(Interval(newstart,newend));
already=1;
break;
}
else if(intervals[i].end<newstart)
res.push_back(intervals[i]);
else
{
newstart=min(intervals[i].start,newstart);
newend=max(intervals[i].end,newend);
}
}
if(already)
{
for(;i<intervals.size();i++)
res.push_back(intervals[i]);
}
else
{
res.push_back(Interval(newstart,newend));
}
return res;
}
};
* 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> res;
int newstart=newInterval.start;
int newend=newInterval.end;
bool already=0;
Interval temp;
int i;
for(i=0;i<intervals.size();i++)
{
if(intervals[i].start>newend)
{
res.push_back(Interval(newstart,newend));
already=1;
break;
}
else if(intervals[i].end<newstart)
res.push_back(intervals[i]);
else
{
newstart=min(intervals[i].start,newstart);
newend=max(intervals[i].end,newend);
}
}
if(already)
{
for(;i<intervals.size();i++)
res.push_back(intervals[i]);
}
else
{
res.push_back(Interval(newstart,newend));
}
return res;
}
};
本文介绍了一个C++实现的插入区间算法,该算法用于在一系列已排序的不重叠区间中插入一个新的区间,并确保所有相交的区间被合并。通过遍历输入的区间列表并与新插入的区间进行比较,算法能够有效地确定合并后的区间结果。
320

被折叠的 条评论
为什么被折叠?



