美文网首页
如何将对象转换为pathVaLlue

如何将对象转换为pathVaLlue

作者: 艺术类架构师 | 来源:发表于2023-02-22 15:59 被阅读0次

    0.DFS构造树

    1.构造1:N(N=子孩子节点)

    f.png

    LeetCode 在同一条直线上的最多点

    
    执行用时:
    224 ms
    , 在所有 JavaScript 提交中击败了
    12.50%
    的用户
    内存消耗:
    67 MB
    , 在所有 JavaScript 提交中击败了
    5.77%
    的用户
    /**
     * @param {number[][]} points
     * @return {number}
     */
    /**
     * @param {number[][]} points
     * @return {number}
     */
    var maxPoints = function(points) {
    
          if(points.length==1){
              return 1;
          }
    
          //两点确定一条直线
          //排序
      
           let set=new Map();
    
           let ans=0;
    
           for(let i=0;i<points.length;i++){   
               let preKey="y2="+points[i][1]+"->y1="+points[i][0]+"->"
               for(let j=0;j<points.length;j++){
                 if(i==j){
                     continue;
                 }
                  let y1=points[j][1]-points[i][1];
                  let x1=points[j][0]-points[i][0];
                  let p2=y1/x1; 
                  if(x1==0){
                      p2="00";
                  }
                  let z=p2
                
                  p2=preKey+z
                 
    
                  if(set[p2]){
                      set[p2]+=1
                  }
                  else{
                      set[p2]=2
                  }
                  ans=Math.max(set[p2],ans)
              
                 
               }
             
           }
    
           return ans
    
    
    
        }
    
    
      
         if(points.size()==1){
              return 1;
          }
    
          //两点确定一条直线
          //排序
      
           unordered_map<string,int> map;
    
           int ans=0;
           int len=points.size();
           for(int i=0;i<len;i++){   
               string preKey="y2="+to_string(points[i][1])+"->x2="+to_string(points[i][0])+"->";
               for(int j=0;j<len;j++){
                 if(i==j){
                     continue;
                 }
                  double y1=points[j][1]-points[i][1];
                  double x1=points[j][0]-points[i][0];
                  double p2=x1==0?0:y1/x1; 
                  string z=to_string(p2);
                  if(x1==0){
                      p2=0;
                      z="02";
                  }
                  preKey.push_back('->');
                 string key=preKey+z;
                  if(map.count(key)>0){
                      map[key]+=1;
                  }
                  else{
                      map[key]=2;
                  }
                  ans=max(map[key],ans);
              
                 
               }
           }
             
           
    
           return ans;
    
    

    相关文章

      网友评论

          本文标题:如何将对象转换为pathVaLlue

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