1037 Valid Boomerang
Last updated
Last updated
A boomerang is a set of 3 points that are all distinct and not in a straight line.
Given a list of three points in the plane, return whether these points are a boomerang.
Example 1:
Example 2:
Note:
points.length == 3
points[i].length == 2
0 <= points[i][j] <= 100
这题考的是三点共线用向量的求法。当然我们可以用y = xk + b解方程,但实现起来很多边界条件,譬如k不存在之类的,所有很难控制。具体证明看这里https://www.youtube.com/watch?v=L3EnbHgSUKg。主要就是求这个OA向量和OB向量的积:
这里O(x1, x2), A (x1, y1), B (x2, y2)
这里行列式我们会有正负号,但面积是没有的,所以要加绝对值。其实我们求面积其实是菱形的,要乘个1/2才是三角形的面积。如果面积不等于0,我们就知道三点能成为三角形,所以不共线。