私は、2つの非常に大きな範囲のリストを比較して重複領域を見つけることが1ステップである複雑なアルゴリズムをC#で作成しています。私はそれらを見つけるために多くの方法を試みましたが、すべての可能性をカバーしているかどうかはわかりません。また、このステップの私の仲間は、巨大なリストでは長すぎます。C#で2つの整数範囲の重複領域を見つける#
例:
範囲1 = 1-400
範囲2 = 200~600
ので、私はすべきこれらの二つの範囲の間の重複をチェックしたいとき入手する
答え= 200
合計200個の数字は、これら二つの範囲の間で重複しているため。だから私は答えを求めている、私は2つの範囲の間で重複している整数の正確な数が欲しい。リストの
例:
リスト1:1-400、401から800まで、801から1200など.... LIST2:10240から10276、10420 10456、11646- 11682など...
リスト1の各範囲をリスト2の各範囲と比較し、list1の特定の範囲がlist2の範囲と重複しているかどうかを調べる必要があります。これらは重複する回答ですか?これは単なるサンプル値なので、わかります。
2つの範囲の重複解を見つけるには、単純で最も効率的な/高速の式が必要です。ループアルゴリズムの残りの部分を管理できます。
例式:2つの範囲が全く重複していない場合
var OverlappingValue = FindOverlapping(range1.StartValue, range1.EndValue,range2.StartValue, range2.EndValue);
と
は、その関数は事前 PSで0 感謝を返す必要があります。私はその本当に複雑にbcz私のコードを投稿しdidntは多くの条件で、私は単純な式が1つだけ必要です。ありがとう。
あなたは400から200までできますか? –
if range2.start
@OscarSiauwまた、range1.startがrange2.endの前後にあるかどうか、またrange2.endがrange1.endの前後にあるかどうかをチェックする必要があります。 – juharr