Posted on

Description

Submission

class Solution {
public:
    bool checkStraightLine(vector<vector<int>>& coordinates) {

        int x0 = coordinates[0][0];
        int y0 = coordinates[0][1];

        for(auto& v: coordinates) {
            v[0] -= x0;
            v[1] -= y0;
        }

        int a = -coordinates[1][1];
        int b = coordinates[1][0];
 
        for(auto& p: coordinates) {
            if(a * p[0] + b * p[1] != 0) return false;
        }
        return true;
    }
};


// move all the nodes so that he line passes origin.
// to make it passing the origin, we move one point to the origin.
// (just taking the first one!)
// After that, the line equation will be ax + by = 0
// The we've got an equation

// ax0 + by0 = 0
// ax1 + by1 = 0

// a b
// a b
// By solving the equation,
// a = -y0, b = x0

Leave a Reply

Your email address will not be published. Required fields are marked *