LC 1037. 有效的回旋镖 (opens new window) (opens new window)
简单
# 问题描述
给定一个数组 points
,其中 points[i] = [xi, yi]
表示 X-Y 平面上的一个点,如果这些点构成一个 回旋镖 则返回 true
。
回旋镖 定义为一组三个点,这些点 各不相同 且 不在一条直线上 。
示例 1:
输入:points = [[1,1],[2,3],[3,2]]
输出:true
示例 2:
输入:points = [[1,1],[2,2],[3,3]]
输出:false
提示:
points.length == 3
points[i].length == 2
0 <= xi, yi <= 100
# 数学
假设三点分别为 ,,
斜率:
斜率:
若三点不在同一直线上,有 ,即
/**
* @param {number[][]} points
* @return {boolean}
*/
var isBoomerang = function (points) {
const v1 = [points[1][0] - points[0][0], points[1][1] - points[0][1]]
const v2 = [points[2][0] - points[0][0], points[2][1] - points[0][1]]
return v1[1] * v2[0] !== v2[1] * v1[0]
}
- 时间复杂度:
- 空间复杂度:
上次更新: 2023/01/31 19:48:05
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 , 转载请注明出处!