回旋镖定义为一组三个点,这些点各不相同且不在一条直线上。
给出平面上三个点组成的列表,判断这些点是否可以构成回旋镖。
示例 1:
输入:[[1,1],[2,3],[3,2]] 输出:true
示例 2:
输入:[[1,1],[2,2],[3,3]] 输出:false
提示:
points.length == 3
points[i].length == 2
0 <= points[i][j] <= 100
C++
class Solution {
public:
bool isBoomerang(vector<vector<int>>& points)
{
if(points[0]==points[1] || points[0]==points[2] || points[1]==points[2])
{
return false;
}
else
{
if(points[0][0]==points[1][0])
{
return points[2][0]!=points[1][0];
}
if(points[0][0]==points[2][0])
{
return points[2][0]!=points[1][0];
}
if(points[1][0]==points[2][0])
{
return points[2][0]!=points[0][0];
}
if(points[0][1]==points[1][1])
{
return points[2][1]!=points[1][1];
}
if(points[0][1]==points[2][1])
{
return points[2][1]!=points[1][1];
}
if(points[1][1]==points[2][1])
{
return points[2][1]!=points[0][1];
}
float a=float(points[0][0]-points[1][0])/float(points[0][1]-points[1][1]);
float b=float(points[0][0]-points[2][0])/float(points[0][1]-points[2][1]);
return a!=b;
}
}
};
python
class Solution:
def isBoomerang(self, points: List[List[int]]) -> bool:
if points[0]==points[1] or points[0]==points[2] or points[1]==points[2]:
return False
else:
if points[0][0]==points[1][0]:
return points[0][0]!=points[2][0]
if points[0][0]==points[2][0]:
return points[1][0]!=points[2][0]
if points[1][0]==points[2][0]:
return points[0][0]!=points[2][0]
if points[0][1]==points[1][1]:
return points[0][1]!=points[2][1]
if points[0][1]==points[2][1]:
return points[1][1]!=points[2][1]
if points[1][1]==points[2][1]:
return points[0][1]!=points[2][1]
a=(points[0][0]-points[1][0])/(points[0][1]-points[1][1])
b=(points[0][0]-points[2][0])/(points[0][1]-points[2][1])
return a!=b