我有一個長方體的列表,它們的左下角和右上角的座標定義爲平行於軸的邊。座標是雙重值。這些長方體密集排列,與一個或多個其他部分重疊,甚至完全包含其他部分。如何計算多個重疊的長方體的總體積
我需要計算所有給定長方體所包含的總體積。重疊的區域(甚至多次)應該只計算一次。
例如,卷:
- ((0,0,0)(3,3,3))
- ((0,1,0)(2,2,4) )
- ((1,0,1)(2,5,2))
- ((6,6,6-)(8,8,8))
的總體積爲27 + 1 + 2 + 8 = 38. 有沒有簡單的方法來做到這一點(在O(n^3)時間或更好?)?
n^3我猜是不夠的。 – Trasvi
嘗試一種分而治之的方法。根據它們所屬的垂直線的哪一側將長方體列表分爲兩組,並將與該線相交的那些長方體分成兩部分。這可能會導致運行時間看起來像T(n)= 2T(n/2)+ cn。 – krjampani
@krjampani:按行我想你的意思是飛機 –