[leetcode]447. Number of Boomerangs

problem

447. Number of Boomerangs

也就是回旋镖的数量问题,以一个点为端点,若存在n个相等的点,那么就有两种情况可以构成三元数组,abc和acb是不同,也就是排列问题,有n(n-1)个。那么遍历每个点存在的三元数组求和即为所求。

 

class Solution {
public:
    int numberOfBoomerangs(vector<pair<int, int>>& points) {
        int res = 0;
        for(int i=0; i<points.size(); i++)
        {
            map<int, int> mymap;
            for(int j=0; j<points.size(); j++)
            {
                int a = points[i].first - points[j].first;//
                int b = points[i].second - points[j].second;//
                mymap[a*a+b*b]++;
            }
            for(auto it=mymap.begin(); it!=mymap.end(); it++)
            {
                res += it->second * (it->second- 1);
            }
            mymap.clear();
        }
        return res;
    }
};

 

 

 

re:

1. Leetcode_447. Number of Boomerangs;

end

posted on 2019-03-11 10:41  鹅要长大  阅读(199)  评论(0编辑  收藏  举报

导航