LeetCode 447 回旋镖的数量[Map] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 447 回旋镖的数量[Map] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
说是回旋镖,其实是找出组成V的个数,并且跟顺序有关,那么思路就清晰了,每次固定一个点作为V的中心,计算其他点到这个点的距离,放入Map中统计,然后再遍历每个距离,利用数学公式m(m-1)统计V的个数,其中m是相等距离的个数,代码如下:

class Solution {
public:
    int numberOfBoomerangs(vector<vector<int>> &points) {
        int num = 0;
        unordered_map<int, int> mp;
        for (auto& x : points) {
            // 清空哈希表
            mp.clear();
            for (auto& y : points) {
                // 统计新增的(考虑顺序所以乘2)
                num += 2 * mp[(x[0] - y[0]) * (x[0] - y[0]) + (x[1] - y[1]) * (x[1] - y[1])]++;
            }
        }
        return num;
    }
};

以上是关于LeetCode 447 回旋镖的数量[Map] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—447. 回旋镖的数量( 哈希表)—day37

Leetcode刷题100天—447. 回旋镖的数量( 哈希表)—day37

447-回旋镖的数量

447. 回旋镖的数量

LeetCode 678. 有效的括号字符串(贪心,动规) / 4. 寻找两个正序数组的中位数(二分,关键题) / 447. 回旋镖的数量

447. 回旋镖的数量