LeetCode——1037.有效的回旋镖

通过万岁!!!

  • 题目:就是给你三个点,让我们判断是不是在一条直线上。
  • 思路:首先我们都知道,两点确定一条直线,直线表达式为(x-x1)/(x2-x1) == (y-y1)/(y2-y1)。因此,我们只需要将x和y变成第三个点,然后判断是不是相等,就可以判断是不是在一条直线上。然后这里又特殊情况,就是点重合,这时候分母可能是0,所以我们将方程转换一下。 (x-x1) * (y2-y1)==(y-y1) * (x2-x1),这样就可以直接判断了。
  • 技巧:就是用到了初中数学知识,还是挺简单的。

java代码

class Solution {
    public boolean isBoomerang(int[][] points) {
        // 前两个点确定一条直线(x-x1)/(x2-x1)==(y-y1)/(y2-y1)
        if (1.0 * (points[2][0] - points[0][0]) * (points[1][1] - points[0][1]) == 1.0 * (points[2][1] - points[0][1]) * (points[1][0] - points[0][0])) {
            return false;
        } else {
            return true;
        }
    }
}
  • 总结:学好数理化,走遍天下都不怕,果然数学知识还是非常重要的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值