leetcode 447. 回旋镖的数量

题解

遍历每个点与其它点的距离,具有相同距离的点数如果为n的话,则有n * (n-1)种可能

示例代码(go)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
func numberOfBoomerangs(points [][]int) int {
res := 0
for i := 0; i < len(points); i++ {
hashMap := make(map[int]int)
for j := 0; j < len(points); j++ {
if i != j {
x := points[i][0] - points[j][0]
y := points[i][1] - points[j][1]
distance := x * x + y * y
hashMap[distance]++
}
}
for _, n := range hashMap {
res += n * (n-1)
}
}
return res
}