給出乙個無重疊的按照區間起始端點排序的區間列表。
在列表中插入乙個新的區間,你要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)。
插入區間[2, 5] 到 [[1,2], [5,9]],我們得到 [[1,9]]。
插入區間[3, 4] 到 [[1,2], [5,9]],我們得到 [[1,2], [3,4], [5,9]]。
這道題共有三種情況
1.新區間位於區間列表中某個區間的前面,即newinterval.end < intervals.get(i).start。
2.新區間位於區間列表中某個區間的後面,即newinterval.start > intervals.get(i).end。
3.新區間與區間列表中某個區間或某幾個連續區間相交,即將newinterval.end與相交區間的end值相比,取其大者。
/**
* definition of interval:
* public classs interval
*/public
class
solution else
if(newinterval.start>interval.end)
continue;
}interval.start=math.min(newinterval.start,interval.start);
interval.end=math.max(newinterval.end,interval.end);
while(i1)
i++;}}
}return intervals;
}}
LintCode 30 插入區間
給出乙個無重疊的按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 插入區間 2,5 到 1,2 5,9 我們得到 1,9 插入區間 3,4 到 1,2 5,9 我們得到 1,2 3,4 5,9 無直接將數從小到大存到陣列,接...
LintCode 30 插入區間
給出乙個無重疊的按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 樣例 插入區間 2,5 到 1,2 5,9 我們得到 1,9 插入區間 3,4 到 1,2 5,9 我們得到 1,2 3,4 5,9 這道題比較考驗邏輯能力,...
LintCode 30 插入區間
題目 分析 在非重疊的區間中插入乙個新的區間,可能還需要與原有的區間進行合併,因此要對給定的區間集合進行遍歷,需要考慮兩點 新插入的區間與原有區間不重疊,不重疊的情況分為兩種 第一種是新區間的start 原區間的end 第二種是新區間的end 原區間的start。這種情況直接將新區間插入到對應的位置...