leetcode447 迴旋鏢的數量
阿新 • • 發佈:2018-11-17
class Solution: def numberOfBoomerangs(self, points): """ :type points: List[List[int]] :rtype: int """ # 用一個字典, 記錄下與某點相同距離的次數 d = {} res = 0 # 以每一個點為中心, 進行嘗試, 看看有沒有距離相同的點出現, 如果放在map中, 然後對map進行統計操作, # 在進行下一個點的時候 要將之前的map清空 for i in range(len(points)): for j in range(len(points)): if i == j: continue dis = (points[i][0] - points[j][0]) ** 2 + (points[i][1] - points[j][1]) ** 2 d[dis] = d.get(dis, 0) + 1 for item in d.values(): if item >= 2: res += item * (item - 1) d.clear() return res if __name__ == '__main__': sol = Solution() points = [[0,0],[1,0],[2,0]] res = sol.numberOfBoomerangs(points) print(res)