Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
分析: 任取兩點組成的直線,看有多少點在其上面。
注意: 考慮 3 種情況: 兩點重合; 斜率為無窮大; 正常情況
/** * Definition for a point. * struct Point { * int x; * int y; * Point() : x(0), y(0) {} * Point(int a, int b) : x(a), y(b) {} * }; */ class Solution { public: int maxPoints(vector&points) { int max_points(0); double a(0), b(0); // denote a straight line LINE_TYPE line_type(LINE); if(points.size() == 0) return 0; else if(points.size() == 1) return 1; for(int i=0; i (points[j].x - points[i].x); //tangent b = points[i].y - a * points[i].x; } // compute how many points on the line int point_count(2); for(int k=0; k