leetcode 447 Number of Boomerangs

Posted liuqiujie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 447 Number of Boomerangs相关的知识,希望对你有一定的参考价值。

每一轮for循环,判断当points[i]为Boomerangs的第一个point时,第二个point和第三个point有几种情况:计算points[i]与其他每一个points[j]的距离;当距离相等的点大于等于两个时,从这些点中选两个,且则两个点有序(组合问题),就是一种情况。

class Solution {
public:
    int numberOfBoomerangs(vector<vector<int>>& points) {
        int re=0;
        for(int i=0;i<points.size();++i) {
            unordered_map<int,int> m;
            for(int j=0;j<points.size();++j) {
                if(i==j) continue;
                int dis=(points[i][0]-points[j][0])*(points[i][0]-points[j][0])+(points[i][1]-points[j][1])*(points[i][1]-points[j][1]);
                ++m[dis];
            }
            for(auto& t:m) {
                if(t.second==1) continue;
                int ans=t.second*(t.second-1);
                re+=ans;
            }
        }
        return re;
    }
};

 

以上是关于leetcode 447 Number of Boomerangs的主要内容,如果未能解决你的问题,请参考以下文章

leetcode447-Number of Boomerangs

[LeetCode]447 Number of Boomerangs

leetcode 447 Number of Boomerangs

Leetcode 447. Number of Boomerangs JAVA语言

LeetCode 447. Number of Boomerangs; 149. Max Points on a Line

[LeetCode 1274] Number of Ships in a Rectangle