您的位置:首页 > 职场人生

31_leetcode_ Insert Interval

2014-06-08 10:13 363 查看
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
     
     You may assume that the intervals were initially sorted according to their start times.
     
     Example 1:
     Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].
     
     Example 2:
     Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16].
     
     This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10]

1:当数组为null的时候;2:遍历数组,并检测当前interval与数组当前interval之间的关系并做出相应的判断;3:遍历完成后,把最后的interval保存到数组中
vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {
vector<Interval> result;
if(intervals.size() == 0)
{
result.push_back(newInterval);
return result;
}

int size = (int)intervals.size();

for(int i = 0; i < size; i++)
{
if(newInterval.end < intervals[i].start)
{
result.push_back(newInterval);
newInterval.start = intervals[i].start;
newInterval.end = intervals[i].end;
}
else if(newInterval.end <= intervals[i].end)
{
newInterval.end = intervals[i].end;

if(newInterval.start > intervals[i].start)
{
newInterval.start = intervals[i].start;
}
}
else
{
if(newInterval.start > intervals[i].end)
{
result.push_back(intervals[i]);
}
else if (newInterval.start > intervals[i].start)
{
newInterval.start = intervals[i].start;
}
}
}

result.push_back(newInterval);

return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息