|
@@ -1,3 +1,24 @@
|
|
|
-func numberOfBoomerangs(points [][]int) int {
|
|
|
-
|
|
|
+func numberOfBoomerangs(points [][]int) (cnt int) {
|
|
|
+ n := len(points)
|
|
|
+ dis := make([][]int, n)
|
|
|
+ for i := 0; i < n; i++ {
|
|
|
+ dis[i] = make([]int, n)
|
|
|
+ }
|
|
|
+ for i := 0; i < n-1; i++ {
|
|
|
+ for j := i + 1; j < n; j++ {
|
|
|
+ dx, dy := points[i][0]-points[j][0], points[i][1]-points[j][1]
|
|
|
+ dis[i][j] = dx*dx + dy*dy
|
|
|
+ dis[j][i] = dis[i][j]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for i := 0; i < n; i++ {
|
|
|
+ m := make(map[int]int)
|
|
|
+ for j := 0; j < n; j++ {
|
|
|
+ m[dis[i][j]]++
|
|
|
+ }
|
|
|
+ for _, v := range m {
|
|
|
+ cnt += v * (v - 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
}
|