1037. 有效的回旋镖

  • ​​题目描述​​
  • ​​解题思路​​
  • ​​代码实现​​

题目描述

【LeetCode】第48天 - 1037. 有效的回旋镖_算法

解题思路

没想到遇到一道纯数学题。

所谓的“有效的回旋镖”就是指所给的三个点不在同一条直线上。

  • 由三个点可以计算得到两个向量
  • 三个点不在同一条直线上,即两个向量不平行,即叉乘不为0。

代码实现

class Solution {
public boolean isBoomerang(int[][] points) {
//计算第一个向量
int x1=points[1][0]-points[0][0],y1=points[1][1]-points[0][1];
//计算第二个向量
int x2=points[2][0]-points[0][0],y2=points[2][1]-points[0][1];

//向量叉乘不为0
return (x1*y2-x2*y1)!=0;
}
}