缀点成线
在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。
function checkStraightLine(coordinates) {
if(coordinates.length == 1 || coordinates.length == 2){
return true
}
let a,b;
let item0 = coordinates[0],item1 = coordinates[1];
if(item0[0] == item1[0]){
for(let i = 2;i < coordinates.length;i++){
let item = coordinates[i]
if(item[0] != item0[0]){
return false
}
}
return true
}
if(item0[1] == item1[1]){
for(let i = 2;i < coordinates.length;i++){
let item = coordinates[i]
if(item[1] != item0[1]){
return false
}
}
return true
}
a = (item1[1] - item0[1]) / (item1[0] - item0[0])
b = ((item1[1] + item0[1]) - (item1[0] + item0[0]) * a ) / 2
for(let i = 2;i < coordinates.length;i++){
let item = coordinates[i]
if(a * item[0] + b != item[1]){
return false
}
}
return true
}
Leecode提交通过
以自己现在的努力程度,还没有资格和别人拼天赋

浙公网安备 33010602011771号