2016-05-13 3 views
0

私は番号の範囲を持っていると私は、例えば、互いに重複しないセットを返すために必要がある場合は、ここでは数字の集合である比較:複数の範囲とリターンの非重複セット

1,4 
0,3 
4,7 
0,4 

をI返却する必要があります。

0,3 
4,7 

大きなデータセットの例:私は返す必要があります

0,1 
0,2 
2,5 
4,8 
3,7 
8,11 
8,9 
9,11 

0,2 
3,7 
8,11 

より小さいセットが別のセットにあり、廃棄する必要がある状況を考慮する必要があります。前のセットを使用する

0,1 
0,2 
3,7 

0,1は0,2セットに含まれているので、0,1は破棄する必要があります。

ご協力いただければ幸いです。どうもありがとう。

+0

あなたは '内に含まれる' とは何を意味するのですか? –

+1

1つの範囲は、0-2 [0,1,2]であり、他の範囲は0-1 [0,1]である場合、1は0-2の間であり、したがって0,1は廃棄されるべきです。それは役に立ちますか? – AnonPyDev

答えて

1

あなたの目標は、あなたが貪欲なアルゴリズムを使用してInterval scheduling問題、特に解決策を確認する必要があり、非重複セットの最大のセットを見つけることである場合。パフォーマンスが問題ではない場合は、Python set組合またはサブセットで遊んで試してみて、お互いにセットを比較することができます。

set(range(0, 4)).union(set(range(0, 1))) 
+0

目標は、隣同士に座るグループ内で最大の非重複セットを見つけることです。例えば、0,4および5,8および9,11は、セット3,10が破棄されるようにする。 – AnonPyDev

+0

あなたはお互いの隣に座っているものを見つけるために再帰関数を使って遊びたいかもしれません。しかし、それをどうやって行うのかはかなりわかりません。 –

+0

インターバル・スケジューリングを紹介してくれてありがとう。それは私が結果が必要な取得するために、次のコードを変更することができた、私が探していたものです。 https://github.com/farazdagi/algorithms/blob/master/weighted-interval-scheduling.py – AnonPyDev

関連する問題