この形式の範囲の 2 つの配列があります。
wanted = {[10, 15], [20, 25]}
cut = {[5, 12], [22, 24]}
wanted
と の 2 つの要素 (範囲) の配列も[10, 15]
同様です[20, 25]
。
2 つの配列はそれぞれ、次の条件を満たしています。
- 整数の各範囲の最初の値でソートされます
- 範囲が重複することはありません (たとえば
[10, 15]
、可能で[15, 25]
はありません) 。 - これは、各範囲が配列内で一意であることも意味します (no
[1, 5]
,[1, 5]
) - 範囲がちょうど 1 つの整数の幅である場合、次のように表示されます
[5, 5]
(開始と終了は等しい)
cut
の範囲からすべての範囲が削除された範囲の配列を取得したいと考えていwanted
ます。
result = {[13, 15], [20, 21], [25, 25]}
以下よりも優れた/簡単/高速な素晴らしいアルゴリズムはありますか?
の各要素について、要素 from が要素 fromの上で終了するまで、
wanted
その要素を次の要素と比較します。cut
cut
wanted