我的力扣算法1232-缀点成线

ok
看题:
在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。

我的力扣算法1232-缀点成线_第1张图片
我的力扣算法1232-缀点成线_第2张图片
啊,这,就是斜率要相等嘛。
代码:

class Solution {
     
public:
    bool checkStraightLine(vector<vector<int>> &coordinates) {
     
        int deltaX = coordinates[0][0], deltaY = coordinates[0][1];
        int n = coordinates.size();
        for (int i = 0; i < n; ++i) {
     
            coordinates[i][0] -= deltaX;
            coordinates[i][1] -= deltaY;
        }
        int A = coordinates[1][1], B = -coordinates[1][0];
        for (int i = 2; i < n; ++i) {
     
            int x = coordinates[i][0], y = coordinates[i][1];
            if (A * x + B * y != 0) {
     
                return false;
            }
        }
        return true;
    }
};

ok

你可能感兴趣的:(力扣算法练习,算法,leetcode,c++,数学)