示例:
輸入:
[[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 = 0
for 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