leetcode1401

1  クラスソリューション:
 2      DEF checkOverlap(自己、半径:INT、x_center:INT、y_center:INT、X1:INT、Y1:INT、X2:INT、Y2:INT) - > BOOL:
 3          
4          中心のCOORDSを取得します長方形の
5          C1 =(X2 + X1)/ 2
 6          C2 =(Y2 + Y1)/ 2
 7          
8          xの円と長方形の中心間の距離を取得、Y方向
9つの         3クワッドにおける円のと仮定する中心のためのABSと第1クワッド矩形の
10          - V1 = ABS(x_center C1) 
 11          V2 = ABS(y_center - C2)
 12          
13         幅と矩形のな長さの取得半分
14          H1 =(X2 - X1)/ 2 
 15          H2 =(Y2 - Y1)/ 2
 16           
17          矩形の辺の(I)の半分との間の距離の差(H1、H2)( ⅱ)の円と長方形の間の距離
18          それは例えばについて陰性であることができます。円は長方形に完全にある場合。したがって、ゼロと最大を取って
19          -最大U1 =(0、V1 H1)
 20          -最大U2 =(0、V2 H2)
 21          
22          さて、この最後のステップのために自分自身を考えてみる
23          ヒントが斜辺です!
24          リターン(U1 * U1 + U2 * U2 <=半径* 半径)
 25  
26          希望あなたはそれを得る:)

アルゴリズムのタイプ:ジオメトリの計算。

参考:https://leetcode.com/problems/circle-and-rectangle-overlapping/discuss/563319/Python-O(1)-With-Detailed-Explanation

おすすめ

転載: www.cnblogs.com/asenyang/p/12635713.html