美文网首页
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