標準的な間隔表現は、通常、ペアになった開始点と終了点のセットで構成されます。現在のジレンマは、指定された各間隔の右側で最も近い重複しない間隔を見つけることです。このタスクは、現在の間隔と交差しない、または現在の間隔を含まない次の間隔を特定する必要があるため、リソースの割り当てやスケジューリングなど、さまざまなアプリケーションで非常に重要です。
###文法###この問題を解決するには、最も近い重複しないパートナーを指すインデックス スタックを維持しながら、逆の順序で間隔を反復することを中心とした、組織的なアプローチが必要です。ここでは、私たちが提案するアルゴリズムがこの問題を解決する方法の、簡単ですが効果的な手順を示します -
重複しない間隔のインデックスを保存するために空のスタックを作成します。
重複しない間隔が見つからなかったことを示すために、間隔の数と同じサイズのインデックス ベクトルを -1 でパディングして初期化します。
間隔を右から左に移動します。
スタックが空ではなく、現在の間隔と最上位の間隔の間に断面積がある場合は、最上位のインデックスをスタックから削除 (ポップ) します。
このタスクを実行する前に、指定したスタックに要素があることを確認することを強くお勧めします。そうでないとエラーが発生します。前記構造上に 1 つ以上の要素があることを確認した後、現在の間隔のベクトルのインデックス値を、特定した構造上の最上位の対応する要素とその対応するインデックス情報と同じに設定することでこれを行うことができます。 . 操作を実行するには、同じ構造体に含めます。
すべての間隔が処理されるまで、手順 3 ~ 7 を繰り返します。
インデックス ベクトルを返します。
このジレンマを解決するために、2 つの異なる戦略を検討します。
Example
の中国語訳は次のとおりです:方法 2: 最適な解決策
以上が指定された各 N 間隔の右側にある最も近い非重複間隔のインデックスを見つけます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。