美文网首页
max-points-on-a-line

max-points-on-a-line

作者: DaiMorph | 来源:发表于2019-07-24 23:10 被阅读0次
    class Solution {
    public:
        int maxPoints(vector<Point> &points) {
            if(points.size()<3)return points.size();
            int ans=0;
            for(int i=0;i<points.size();i++)
            {
                int vcnt=0,dup=0,curmax=1;
                map<double,int>mp;
                for(int j=0;j<points.size();j++)
                {
                    if(i!=j)
                    {
                        double x1=points[i].x-points[j].x;
                        double y1=points[i].y-points[j].y;
                        if(x1==0&&y1==0)
                        {
                            dup++;
                        }
                        else if(x1==0)
                        {
                            if(vcnt==0)vcnt=2;
                            else vcnt++;
                            curmax=max(curmax,vcnt);
                        }
                        else{
                            double k=y1/x1;
                            if(mp.find(k)==mp.end())mp[k]=2;
                            else mp[k]++;
                            curmax=max(curmax,mp[k]);
                        }
                    }
                }
                ans=max(ans,curmax+dup);
            }
            return ans;
        }
    };
    

    相关文章

      网友评论

          本文标题:max-points-on-a-line

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