题目:
解题思路:
直线上面的点满足公式:,
如果所有点在一条直线上,即任意两点的斜率相同,由于计算斜率存在精度的问题,可以将除法等价于乘法。
等价于
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