1037. 有效的回旋镖
大约 1 分钟
---
1037. 有效的回旋镖
- 标签:几何、数组、数学
- 难度:简单
题目链接
题目大意
描述:给定一个数组 ,其中 表示平面上的一个点。
要求:如果这些点构成一个回旋镖,则返回 True
,否则,则返回 False
。
说明:
- 回旋镖:定义为一组三个点,这些点各不相同且不在一条直线上。
- 。
- 。
- 。
示例:
- 示例 1:
输入:points = [[1,1],[2,3],[3,2]]
输出:True
- 示例 2:
输入:points = [[1,1],[2,2],[3,3]]
输出:False
解题思路
思路 1:
设三点坐标为 ,,,则向量 ,。
如果三点共线,则应满足:。
如果三点不共线,则应满足:。
思路 1:代码
class Solution:
def isBoomerang(self, points: List[List[int]]) -> bool:
x1, y1 = points[0]
x2, y2 = points[1]
x3, y3 = points[2]
cross1 = (x2 - x1) * (y3 - y2)
cross2 = (x3 - x2) * (y2 - y1)
return cross1 - cross2 != 0
思路 1:复杂度分析
- 时间复杂度:。
- 空间复杂度:。