インタビューの質問最適化:長方形の最小の矩形の中に点を見つけます。 O(n)とが、さらなる
を考えると数十億、任意の点P(x、y)は
に答えを達成するための簡単な方法がありますが重複最小面積の長方形を見つけることを各矩形を順番に処理することによってO(n)時間がかかるが、それをさらに最適化するために、多数の矩形配列を提供する。
私の最善のアプローチは、各矩形をチェックし、その点が内側かどうかを確認し、面積を計算し、現在の最小面積と比較することです。これは1回のパスで行うことができます。私はすべての長方形をチェックする必要がない他の方法を考え出すことはできません
私は全く同意します。しかし、私はインタビュアーが、多くのクエリでうまくいく解決策を考えると思うと思います。私は、後続のすべてのクエリをLogNまたはO(n)未満にする高価な前処理パスの取引を見ることができることを望むと思います。だから私は最高の答えは、 "1つの検索のみ、O(n)は最高です"と言うことです。複数のクエリの場合、k-treeや他のデータ構造を使うことができます " – Pinhead