LeetCode 1037. 有效的回旋镖

题目来源: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])

你可能感兴趣的:(LeetCode 1037. 有效的回旋镖)