美文网首页
447.(map)找出i,j,k三个点使得j和k到i的距离相等

447.(map)找出i,j,k三个点使得j和k到i的距离相等

作者: Ching_Lee | 来源:发表于2018-03-25 17:25 被阅读0次

    思想,对于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);
    }
    

    相关文章

      网友评论

          本文标题:447.(map)找出i,j,k三个点使得j和k到i的距离相等

          本文链接:https://www.haomeiwen.com/subject/gcqkcftx.html