1. 程式人生 > >leetcode447 迴旋鏢的數量

leetcode447 迴旋鏢的數量

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)