We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A boomerang is a set of 3 points that are all distinct and not in a straight line.
Given a list of three points in the plane, return whether these points are a boomerang.
Example 1:
Input: [[1,1],[2,3],[3,2]] Output: true
Example 2:
Input: [[1,1],[2,2],[3,3]] Output: false
Note:
points.length == 3
points[i].length == 2
0 <= points[i][j] <= 100
这道题定义了一种回旋镖就是不在同一条直线上的三个点,现在给了同一平面上的三个点,让判断能否组成一个回旋镖。实际上就是初中的几何问题,判断三点是否共线,忘记了的话估计不太容易做出来,虽然只是道 Easy 的题目。我们都知道两点能确定一条直线,那么对于三个点 p1,p2,和 p3,只要 p1 和 p2 连接而成的直线和 p1 和 p3 连接而成的直线重合,则表示三点共线。如何判断直线重合呢,最简单的方法就是看斜率是否相等,知道了两个点求斜率也很简单,只要满足 (y3 - y1) / (x3 - x1) = (y2 - y1) / (x2 - x1),就表示三点共线,换成乘法形式的就是 (y3 - y1) * (x2 - x1) = (y2 - y1) * (x3 - x1),而题目中说的回旋镖就是三点不共线的情况,将这里的等号换成不等号即可,一行搞定碉堡了,参见代码如下:
(y3 - y1) / (x3 - x1) = (y2 - y1) / (x2 - x1)
(y3 - y1) * (x2 - x1) = (y2 - y1) * (x3 - x1)
class Solution { public: bool isBoomerang(vector<vector<int>>& points) { return (points[2][1] - points[0][1]) * (points[1][0] - points[0][0]) != (points[1][1] - points[0][1]) * (points[2][0] - points[0][0]); } };
Github 同步地址:
#1037
参考资料:
https://leetcode.com/problems/valid-boomerang/
https://leetcode.com/problems/valid-boomerang/discuss/286702/JavaC%2B%2BPython-Straight-Forward
LeetCode All in One 题目讲解汇总(持续更新中...)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
A boomerang is a set of 3 points that are all distinct and not in a straight line.
Given a list of three points in the plane, return whether these points are a boomerang.
Example 1:
Example 2:
Note:
points.length == 3
points[i].length == 2
0 <= points[i][j] <= 100
这道题定义了一种回旋镖就是不在同一条直线上的三个点,现在给了同一平面上的三个点,让判断能否组成一个回旋镖。实际上就是初中的几何问题,判断三点是否共线,忘记了的话估计不太容易做出来,虽然只是道 Easy 的题目。我们都知道两点能确定一条直线,那么对于三个点 p1,p2,和 p3,只要 p1 和 p2 连接而成的直线和 p1 和 p3 连接而成的直线重合,则表示三点共线。如何判断直线重合呢,最简单的方法就是看斜率是否相等,知道了两个点求斜率也很简单,只要满足
(y3 - y1) / (x3 - x1) = (y2 - y1) / (x2 - x1)
,就表示三点共线,换成乘法形式的就是(y3 - y1) * (x2 - x1) = (y2 - y1) * (x3 - x1)
,而题目中说的回旋镖就是三点不共线的情况,将这里的等号换成不等号即可,一行搞定碉堡了,参见代码如下:Github 同步地址:
#1037
参考资料:
https://leetcode.com/problems/valid-boomerang/
https://leetcode.com/problems/valid-boomerang/discuss/286702/JavaC%2B%2BPython-Straight-Forward
LeetCode All in One 题目讲解汇总(持续更新中...)
The text was updated successfully, but these errors were encountered: