dd1c5825创建于 2023年8月12日历史提交
class Solution {
public:
    int maxPoints(vector<vector<int>>& points) {
        int res = 1;
        for (int i=0; i<points.size(); ++i) {
            unordered_map<float, int> count;
            for (int j=i+1; j<points.size(); ++j) {
                float s = slope(points[i], points[j]);
                count[s] ++; 
                res = max(res, count[s] + 1);
            }
        }
        return res;
    }
private:
    float slope(vector<int>& p1, vector<int>& p2) {
        if ((p2[0] - p1[0]) == 0) 
            return INT_MAX; // aka edge case to handle a slope of infinity
        return (float) (p2[1] - p1[1]) / (float) (p2[0] - p1[0]);
    }
};