問題タブ [interval-intersection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - O(n)よりも優れた範囲交差アルゴリズム?
範囲の交差は単純ですが、重要な問題です。
それはすでに2回答えられています:
最初の解決策はO(n)であり、2番目の解決策はデータベース用です(もちろんO(n)未満です)。
私は同じ問題を抱えていますが、nが大きい場合、データベース内にいません。
この問題は、長方形内のポイントをすばやく取得するための2Dポイントの保存と非常に似ているようですが、どのようにマッピングされるかわかりません。
では、範囲の検索のコストがO(n)未満になるように、範囲のセットをどのデータ構造に格納しますか?(Javaで利用可能なライブラリを使用するための追加のクレジット)
編集:
交差するすべての範囲のサブセットを取得したいのですが、検索範囲が複数の範囲と交差する可能性があることを意味します。
JavaでO(n)未満である必要があるメソッドは次のとおりです。
Rangeは、intの開始と終了のペアを含む単なるクラスです。
これは不可能な質問ではありません、私はすでに解決策を持っています、私はそれを行うためのより標準的/より簡単な方法があるかどうかを見たかっただけです
java - 間隔交差点
2 つの整数区間が重複しているかどうかをチェックするクラスを作成しました。しかし、私はこの解決策があまり好きではありません。より良い、よりシンプルな方法でそれを行うことは可能だと思います。
}
matlab - for/whileループのない重複する時間間隔
私の質問をする最良の方法は、明確な例を使用することです。2つのタイムライン(秒単位の時間など)AとBについて考えます。ここで、各タイムラインの間隔は次のとおりです。
最初のa間隔が最初のb間隔と重なっていることに注意してください。2番目のa間隔は、1番目、2番目、および3番目のb間隔と重なり、以下同様に続きます。
最終的に、以下のようにb間隔と重なるa間隔のインデックスを示す出力が必要です。
大きな課題は次のとおりです。ソリューションにfor/whileループを含めることはできません(「理由」は無関係です)。これは、ベクトル/行列/配列/並べ替えまたは他のツールを使用して効率的に実行できますか?MATLABの実装は完璧ですが、他の言語でも問題ありません。前もって感謝します!
r - 2 つの論理ベクトルの最初の 1 の実行ごとに交差をカウントする
この質問のより一般的なバージョンは、ここで回答されています。ユーザーは、このより具体的なバージョンの質問を別の投稿として行うことを提案しました。
次のような 2 つの論理ベクトルがあります。
連続する値の範囲 (この例では 1111) の間の交差を、最初のベクトルの 1 の実行ごとに最大 1 つの交差がカウントされるようにカウントしたいと考えています。
上記の回答を使用sum(rle(x & y)$values)
すると、上記のベクトルの交差の総数を2として数えることができますが、 1と予想されます。