题目:
解题思路:
直线上面的点满足公式:,
如果所有点在一条直线上,即任意两点的斜率相同,由于计算斜率存在精度的问题,可以将除法等价于乘法。
等价于
java
class Solution {
public boolean checkStraightLine(int[][] coordinates) {
int x = coordinates[0][0] - coordinates[1][0];
int y = coordinates[0][1] - coordinates[1][1];
for (int i = 1; i < coordinates.length-1; i++) {
int new_x = coordinates[i][0] - coordinates[i+1][0];
int new_y = coordinates[i][1] - coordinates[i+1][1];
if (new_y * x != new_x * y) {
return false;
}
}
return true;
}
}
// ny / nx = y / x