尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

经典算法实例:有效的回旋镖

经典算法实例:有效的回旋镖
📅 发布时间:2026/6/29 18:05:29

我们先来看题目描述:

给定一个数组 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

解决方案

方法:向量叉乘

思路和算法计算从 points [0] 开始,分别指向 points [1] 和 points [2] 的向量 V1 和 V2 。「三点各不相同且不在一条直线上」等价于「这两个向量的叉乘结果不为零」:v1 + v2 ≠ 0

代码

Python3

class Solution: def isBoomerang(self, points: List[List[int]]) -> bool: v1 = (points[1][0] - points[0][0], points[1][1] - points[0][1]) v2 = (points[2][0] - points[0][0], points[2][1] - points[0][1]) return v1[0] * v2[1] - v1[1] * v2[0] != 0

C++

class Solution { public: bool isBoomerang(vector<vector<int>>& points) { vector<int> v1 = {points[1][0] - points[0][0], points[1][1] - points[0][1]}; vector<int> v2 = {points[2][0] - points[0][0], points[2][1] - points[0][1]}; return v1[0] * v2[1] - v1[1] * v2[0] != 0; } };

Java

class Solution { public boolean isBoomerang(int[][] points) { int[] v1 = {points[1][0] - points[0][0], points[1][1] - points[0][1]}; int[] v2 = {points[2][0] - points[0][0], points[2][1] - points[0][1]}; return v1[0] * v2[1] - v1[1] * v2[0] != 0; } }

复杂度分析

时间复杂度: O(1) 。

空间复杂度: O(1) 。

相关新闻

  • 前列腺癌医学影像AI诊断:Kaggle冠军方案解析
  • 2026企业级GEO优化排名监测系统排行,多维度对比解析选型实战指南
  • 基于 eBPF + io_uring 的高性能用户态 TCP 存储引擎设计

最新新闻

  • 告别繁琐的密钥管理:派大星 API —— 你的终极 AI 模型聚合网关与极致性价比之选
  • BDC理财平台的用户资金减损核验与权益折算方案
  • GPT-5.5 写代码靠谱吗?真实项目测完后我发现这些坑
  • 解决Android自动化输入难题:ADBKeyBoard的3种高效集成方案
  • Python驱动Aspose.Words:精准提取Word文档结构化数据的实战指南
  • 简单理解:单电阻、双电阻、三电阻电机采样的区别

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号