题目描述
在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。
解题思路
斜率相等===y2-y1/x2-x1=y3-y2/x3-x2
但是由于除***除不尽或者有除数为0的更多限制
所以转换为乘法<==> (y2-y1)(x3-x2)==(y3-y2)(x2-x1)
运行结果
java代码
class Solution { public boolean checkStraightLine(int[][] coordinates) { for(int i=1;i<coordinates.length-1;i++){ if((coordinates[i][0]-coordinates[i-1][0])*(coordinates[i+1][1]-coordinates[i][1]) != (coordinates[i][1]-coordinates[i-1][1])*(coordinates[i+1][0]-coordinates[i][0])){ return false; } } return true; } }