题目来源:https://leetcode-cn.com/problems/valid-boomerang/
回旋镖定义为一组三个点,这些点各不相同且不在一条直线上。
给出平面上三个点组成的列表,判断这些点是否可以构成回旋镖。
示例 1:
输入:[[1,1],[2,3],[3,2]]
输出:true
示例 2:
输入:[[1,1],[2,2],[3,3]]
输出:false
提示:
points.length == 3
points[i].length == 2
0 <= points[i][j] <= 100
思路:
判断三点是否共线,三点可以组成两个向量(a, b), (c, d)。 若两个向量共线,则有a = kc, b = kd 即满足ad = bc。
class Solution:
def isBoomerang(self, points: List[List[int]]) -> bool:
p1,p2,p3 = points
return (p1[0] - p2[0]) * (p2[1] - p3[1]) != (p1[1] - p2[1]) * (p2[0] - p3[0])