首页 > 其他 > 详细

【leetcode 简单】 第一百零一题 回旋镖的数量

时间:2018-08-29 23:40:19      阅读:254      评论:0      收藏:0      [点我收藏+]

给定平面上 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]]


class Solution:
    def numberOfBoomerangs(self, points):
        """
        :type points: List[List[int]]
        :rtype: int
        """
        
        tmp = 0
        points_len = len(points)
        for i in range(points_len):
            Dict = {}
            for j in range(points_len):
                if j == i:
                    continue
                key = str(pow(points[i][0] - points[j][0], 2) + pow(points[i][1] - points[j][1], 2))
                
                if key in Dict:
                    Dict[key] +=1
                else:
                    Dict[key] = 1
            for p in Dict:
                if Dict[p] > 1:
                    tmp += Dict[p] * (Dict[p] -1)
        return tmp

 

【leetcode 简单】 第一百零一题 回旋镖的数量

原文:https://www.cnblogs.com/flashBoxer/p/9557471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!