2016-10-10 12 views
-1
の直径

IはOでデータ構造 - ポリゴン

  • addPoint(x、y)は(logN個)
  • はprintDiameter(可能データstructuteを必要とする)O(logN個)

でここで、Nはポリゴン内のポイントの現在の数です。
明らかに、2つの点はポリゴンの凸包にあります。反ノーダルペア(Rotating-Callipers)の概念を用いて、N点の直径をO(N)とすることができます。
Thisは、O(n)溶液をきちんと説明していますが、点の挿入をサポートしていません。

答えて

0

何らかの形でbalancedである限り、k-dツリーはO(logN)に挿入できます。直径部分については、最も遠いノードを見つけるためにすべてのノードをチェックしなければならないので、O(N)にする必要があります。 もう1つの解決策は、QuadTreeを使用し、ツリーの外部にあるノードのみを取得するためにそれをトラバースすることです。