每日一题·1037.有效的回旋镖

这篇博客介绍了如何通过计算向量的方法来判断一个数组中的三个点是否构成回旋镖。回旋镖定义为三个不共线的点,代码中通过计算两个向量的叉积来确定它们是否垂直,从而判断三点是否构成回旋镖。时间空间复杂度较低,适合解决此类几何问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

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

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

示例

 

思路

判断三个点是否在一条直线上数学思路可以转换为斜率或者用向量

代码

bool isBoomerang(int** points, int pointsSize, int* pointsColSize){
    int v1[2] = {points[1][0] - points[0][0], points[1][1] - points[0][1]};
    int v2[2] = {points[2][0] - points[0][0], points[2][1] - points[0][1]};
    return v1[0] * v2[1] - v1[1] * v2[0] != 0;
}

时间空间复杂度

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值