package LeetCode;
import java.util.HashMap;
public class Leetcode447 {
// 447. Number of Boomerangs
// https://leetcode.com/problems/number-of-boomerangs/description/
// : O(n^2)
// : O(n)
public int numberOfBoomerangs(int[][] points) {
int res = 0;
for( int i = 0 ; i < points.length ; i ++ ){
// record i
HashMap record = new HashMap();
for(int j = 0 ; j < points.length ; j ++)
if(j != i){
// ,
int dis = dis(points[i], points[j]);
if(record.containsKey(dis))
record.put(dis, record.get(dis) + 1);
else
record.put(dis, 1);
}
for(Integer dis: record.keySet())
res += record.get(dis) * (record.get(dis) - 1);
}
return res;
}
//
private int dis(int[] pa, int pb[]){
return (pa[0] - pb[0]) * (pa[0] - pb[0]) +
(pa[1] - pb[1]) * (pa[1] - pb[1]);
}
}