給出乙個無重疊的 ,按照區間起始端點排序的區間列表。
在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)。
典型的貪心問題,需要對二維陣列起始端點進行排序。
注意以下用法:
linkedlistoutput = new linkedlist(); 可以儲存二維陣列
return output.toarray(new int[output.size()][2]); 可以輸出二維陣列
arrays.
sort
(intervals,
newcomparator
<
int[
]>()
});
class
solution
// add next intervals, merge with newinterval if needed
while
(idx < n)
}return output.
toarray
(new
int[output.
size()
][2]
);}}
對於區間s1[l1,r1],s2[l2,r2],如果兩個區間沒有交集,那麼s1在s2左側,或者s2在s1左側,那麼有l2>r1或者l1>r2,
否則有交集。其並集為[min(l1,l2),max(r1,r2)]
class
solution);
placed =
true;}
anslist.
add(interval);}
else
if(interval[1]
< left)
else}if
(!placed));
}//注意二維陣列和arraylist的轉化
int[
] ans =
newint
[anslist.
size()
][2]
;for
(int i =
0; i < anslist.
size()
;++i)
return ans;
}}
LeetCode 57 插入區間
幾個注意點 1.原集合為空 2.插入在最開始的位置 3.插入在末尾位置 4.插入在中間 可以通過新增標誌,沒有新增就每次都去判斷重疊情況進行新增 vectorresult if intervals.size 0 bool isadd false for int i 0 i intervals.siz...
leetcode57 插入區間
給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...
leetcode 57 插入區間
給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...