447.number-of-boomerangs.go 499 B

123456789101112131415161718192021222324
  1. func numberOfBoomerangs(points [][]int) (cnt int) {
  2. n := len(points)
  3. dis := make([][]int, n)
  4. for i := 0; i < n; i++ {
  5. dis[i] = make([]int, n)
  6. }
  7. for i := 0; i < n-1; i++ {
  8. for j := i + 1; j < n; j++ {
  9. dx, dy := points[i][0]-points[j][0], points[i][1]-points[j][1]
  10. dis[i][j] = dx*dx + dy*dy
  11. dis[j][i] = dis[i][j]
  12. }
  13. }
  14. for i := 0; i < n; i++ {
  15. m := make(map[int]int)
  16. for j := 0; j < n; j++ {
  17. m[dis[i][j]]++
  18. }
  19. for _, v := range m {
  20. cnt += v * (v - 1)
  21. }
  22. }
  23. return
  24. }