綴點成線
阿新 • • 發佈:2020-07-14
在一個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提交通過