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])
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容