如何将对象转换为pathVaLlue

2023-02-22  本文已影响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;

上一篇下一篇

猜你喜欢

热点阅读