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