首页 > 其他 > 详细

[LeetCode] 1037. Valid Boomerang

时间:2021-09-11 10:04:18      阅读:29      评论:0      收藏:0      [点我收藏+]

Given an array points where points[i] = [xi, yi] represents a point on the X-Y plane, return true if these points are a boomerang.

A boomerang is a set of three points that are all distinct and not in a straight line.

Example 1:

Input: points = [[1,1],[2,3],[3,2]]
Output: true

Example 2:

Input: points = [[1,1],[2,2],[3,3]]
Output: false

Constraints:

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

有效的回旋镖。

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

给出平面上三个点组成的列表,判断这些点是否可以构成回旋镖。

示例 1:

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-boomerang
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

这是一道初中数学题,判断三个点是否在同一条直线上。判断三个点是否在同一条直线上其实就是判断每两个点形成的直线的斜率是否相同。根据斜率公式我们知道 斜率 = (x2 - x1) / (y2 - y1)。我们可以根据这个公式求两点之间的斜率,但是为了防止分母为0的情况,我们可以通过交叉相乘的结果是否相等来判断斜率是否相同。

技术分享图片

时间O(1)

空间O(1)

Java实现

1 class Solution {
2     public boolean isBoomerang(int[][] points) {
3         return (points[0][0] - points[1][0]) * (points[0][1] - points[2][1]) != (points[0][0] - points[2][0]) * (points[0][1] - points[1][1]);
4     }
5 }

 

LeetCode 题目总结

[LeetCode] 1037. Valid Boomerang

原文:https://www.cnblogs.com/cnoodle/p/15253418.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!