給定平面上 n 對不同的點,「迴旋鏢」 是由點表示的元組 (i, j, k) ,其中 i 和 j 之間的距離和 i 和 k 之間的距離相等(需要考慮元組的順序)。
找到所有迴旋鏢的數量。你可以假設 n 最大為 500,所有點的座標在閉區間 [-10000, 10000] 中。
示例:
輸入:[[0,0],[1,0],[2,0]]
輸出:2
解釋:兩個迴旋鏢為 [[1,0],[0,0],[2,0]] 和 [[1,0],[2,0],[0,0]]
n個相同的距離有n*(n-1)個,n+1個相同距離有n*(n+1)個,n增加1,結果增加2*n:
class
solution
:def
numberofboomerangs
(self, points: list[list[
int]])
->
int:
dist_dict =
# 相同距離出現的次數
res =
0for i in
range
(len
(points)):
for j in
range
(len
(points)):
if i != j:
dist =
(points[i][0
]-points[j][0
])**2
+(points[i][1
]-points[j][1
])**2
if dist not
in dist_dict:
dist_dict[dist]=1
else
: res +=
2*dist_dict[dist]
# 如果數量增加1,結果增加2n
dist_dict[dist]+=1
dist_dict =
return res
LeetCode447 迴旋鏢的數量
給定平面上 n 對不同的點,迴旋鏢 是由點表示的元組 i,j,k 其中 i 和 j 之間的距離和 i 和 k 之間的距離相等 需要考慮元組的順序 找到所有迴旋鏢的數量。你可以假設 n 最大為 500,所有點的座標在閉區間 10000,10000 中。示例 輸入 0,0 1,0 2,0 輸出 2解釋 ...
LeetCode447 迴旋鏢的數量
447.迴旋鏢的數量 給定平面上n 對不同的點,迴旋鏢 是由點表示的元組 i,j,k 其中i和j之間的距離和i和k之間的距離相等 需要考慮元組的順序 找到所有迴旋鏢的數量。你可以假設n 最大為500,所有點的座標在閉區間 10000,10000 中。示例 輸入 0,0 1,0 2,0 輸出 2解釋 ...
LeetCode 447 迴旋鏢的數量
給定平面上 n 對不同的點,迴旋鏢 是由點表示的元組 i,j,k 其中 i 和 j 之間的距離和 i 和 k 之間的距離相等 需要考慮元組的順序 找到所有迴旋鏢的數量。你可以假設 n 最大為 500,所有點的座標在閉區間 10000,10000 中。示例 輸入 0,0 1,0 2,0 輸出 2 解釋...