思想,对于i的每一个点,生成一个map,key是其他点到points[i]的距离,value是相同距离的点数,那么只要从这些点中依次选择两个就可以构成满足的。
/**
* @param {number[][]} points
* @return {number}
*/
var numberOfBoomerangs = function(points) {
let result=0;
for(let i=0;i<points.length;i++){
//每一个点,生成一张其他点到point[i]的距离表
let map=new Map();
for(let j=0;j<points.length;j++){
//一个map用来存储到i点的距离值,点数(10,2)距离为10的有两个点
if(j!==i){
let distance=getdistance(points[i],points[j]);
if(!map.has(distance))
map.set(distance,1);
else
map.set(distance,map.get(distance)+1);
}
}
map.forEach((item,index,mapobj)=>{
result=result+item*(item-1);
})
}
return result;
};
function getdistance(point1,point2){
return Math.pow(point1[0]-point2[0],2)+Math.pow(point1[1]-point2[1],2);
}