OK、これは上級アルゴリズム クラスで受けた質問です。私はすでに解決策を一度提出しましたが、効率の問題でインストラクターに拒否されました。つまり、私はすでに自分の側で努力したのに、彼のヒントにもかかわらずそれを得ることができなかったので、優しくしてください. 以下に彼のヒントを示します
開始点と終了点の両方を持つ間隔の配列が与えられた場合、各間隔について、その中に含まれる他の間隔の数を見つけます。間隔の数が 10^9 未満で、それらの ID が異なります。start と end が 10^18 未満の場合、入力ファイルに start と end の重複する番号が含まれていません。上記の数字はすべて整数です
ヒントは、バケットを使用したデータ構造を検討することです。アルゴリズムは O(n^2) よりも高速である必要があります
sample input and output
input:
5 %% number of intervals
2 100 200 %% id, start,end. all lines below follows this
3 110 190
4 105 145
1 90 150
5 102 198
output:
3 0
4 0
1 1
5 2
2 3