一、题号1232:点缀成线
1.1 思路分析:
1、判断给定坐标值组成的数组中的元素是否在一条直线上。首先想到到可以是通过斜率来进行判断。
2、通过斜率来进行判断就不可避免的用到了除法,在计算机运算中,除法所耗费的资源比乘法多很多,而且有可能因为截断精度的问题造成问题。除此之外,需要注意到与X轴垂直时如何进行判断是否位于一条直线上,因此不太建议使用除法,虽然本例可以使用此种方式达到提交通过的目的。
3、解法二是使用到了线性代数中的二维向量如果线性相关的时候,则其共线,且所拼接的二阶矩阵的行列式值为0.
1.2 解法一:通过斜率计算来判断的解法如下所示:
var checkStraightLine = function(coordinates) {
//1、判断给定坐标点组成的数组中的元素是否在同一条直线上
//先判断特殊情况,如果数组的长度不大于2,则显然在一条直线