有效的回旋镖
给定一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点,如果这些点构成一个 回旋镖 则返回 true 。
回旋镖 定义为一组三个点,这些点 各不相同 且 不在一条直线上 。
输入:points = [[1,1],[2,3],[3,2]]
输出:true
输入:points = [[1,1],[2,2],[3,3]]
输出:false
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var isBoomerang = function(points) { let p1 = points[0].join(','); let p2 = points[1].join(','); let p3 = points[2].join(','); if (p1 === p2 || p2 === p3 || p1 === p3) { return false; } function getSlope(p1, p2) { const numerator = p2[1] - p1[1]; if (numerator === 0) return 0; const denominator = p2[0] - p1[0]; if (denominator === 0) return 0; return numerator / denominator; } const slope1 = getSlope(points[0], points[1]); const slope2 = getSlope(points[0], points[2]); const slope3 = getSlope(points[1], points[2]); return slope1 !== slope2 || slope1 !== slope3 || slope2 !== slope3; };
|