题目
给定一个数组 coordinates ,其中 coordinates[i] = [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。
链接:https://leetcode-cn.com/problems/check-if-it-is-a-straight-line
思路
核心思路是判断斜率。
代码
class Solution {
public boolean checkStraightLine(int[][] coordinates) {
//计算斜率
if(coordinates==null || coordinates.length <2){
return false;
}
if(coordinates.length==2){
return true;
}
int dx= coordinates[1][0]-coordinates[0][0];
int dy= coordinates[1][1]-coordinates[0][1];
//dx/dy = dx1/dy2;
//dx dy2= dy* dx1;
for(int i=2;i<coordinates.length;i++){
int dx1= coordinates[i][0]-coordinates[i-1][0];
int dy1= coordinates[i][1]-coordinates[i-1][1];
if(dx * dy1!=dy*dx1){
return false;
}
}
return true;
}
}