1037. 有效的回旋镖

题目

给定一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点,如果这些点构成一个 回旋镖 则返回 true

回旋镖 定义为一组三个点,这些点 各不相同不在一条直线上

示例1:

1
2
输入:points = [[1,1],[2,3],[3,2]]
输出:true

示例2:

1
2
输入:points = [[1,1],[2,2],[3,3]]
输出:false

提示:

  • points.length == 3
  • points[i].length == 2
  • 0 <= xi, yi <= 100

解法

解法一:

JAVA

1
2
3
4
5
6
7
8
9
public boolean isBoomerang(int[][] points){
int x1 = points[0][0] - points[1][0];
int y1 = points[0][1] - points[1][1];

int x2 = points[0][0] - points[2][0];
int y2 = points[0][1] - points[2][1];

return x1 * y2 != x2 * y1;
}

解法二:

Java

1
2
3
public boolean isBoomerang(int[][] p) {
return (p[0][0] * (p[1][1] - p[2][1]) + p[1][0] * (p[2][1] - p[0][1]) + p[2][0] * (p[0][1] - p[1][1])) != 0;
}
0%