当前位置:   article > 正文

Leetcode-1037. 有效的回旋镖_将n种不同的 二维数组points,初始位置,points[1]=[xi,yi],表示第0天 i在点

将n种不同的 二维数组points,初始位置,points[1]=[xi,yi],表示第0天 i在点[xi,yi]

链接

1037. 有效的回旋镖

题目

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

示例

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

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

提示

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

思路

判断三个点是否构成一条直线,我们只要判断x2和x1之间的斜率k1,以及x3和x1之间的斜率k2是否相等即可,然而求斜率可能会出现分母为0的情况,因此我们将两个斜率除法转换成乘法,即判断(y2-y1)/(x2-x1)= (y3-y1)/(x3-x1)可以转变成判断(y2-y1)*(x3-x1)=(y3-y1)*(x2-x1)

C++ Code

  1. class Solution {
  2. public:
  3. bool isBoomerang(vector<vector<int>>& points) {
  4. int x1 = points[1][0]-points[0][0];
  5. int x2 = points[2][0]-points[0][0];
  6. int y1 = points[1][1]-points[0][1];
  7. int y2 = points[2][1]-points[0][1];
  8. return x1*y2 != y1*x2;
  9. }
  10. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/253551
推荐阅读
相关标签
  

闽ICP备14008679号