当前位置: 首页 > news >正文

3024. 三角形类型

题目链接

3024. 三角形类型 - 力扣(LeetCode)

题目描述

给你一个下标从 0 开始长度为3的整数数组nums,用它们来构造三角形。

  • 如果一个三角形的所有边长度相等,那么这个三角形称为 equilateral 。
  • 如果一个三角形恰好有两条边长度相等,那么这个三角形称为 isosceles 。
  • 如果一个三角形三条边的长度互不相同,那么这个三角形称为 scalene 。

如果这个数组无法构成一个三角形,请你返回字符串"none",否则返回一个字符串表示这个三角形的类型。

题目示例

示例 1 :

输入:nums = [3,3,3] 输出:"equilateral" 解释:由于三条边长度相等,所以可以构成一个等边三角形,返回 "equilateral" 。

示例 2 :

输入:nums = [3,4,5] 输出:"scalene" 解释: nums[0] + nums[1] = 3 + 4 = 7 ,大于 nums[2] = 5 。 nums[0] + nums[2] = 3 + 5 = 8 ,大于 nums[1] = 4 。 nums[1] + nums[2] = 4 + 5 = 9 ,大于 nums[0] = 3 。 由于任意两边之和都大于第三边,所以可以构成一个三角形,因为三条边的长度互不相等,所以返回 "scalene"。

解题思路

  1. 问题理解
    • 给定一个包含三个整数的数组nums,判断这三个数能否构成三角形。
    • 如果能构成三角形,进一步判断是等边、等腰还是不等边三角形。
  2. 关键思路
    • 排序:首先对数组进行排序,方便比较边的大小关系。
    • 三角形判定:根据三角形两边之和大于第三边的性质进行判定。
    • 分类判断
      • 等边三角形:三边相等。
      • 等腰三角形:至少两边相等。
      • 不等边三角形:三边均不相等。
  3. 算法流程
    • 对数组排序,得到有序的三边a ≤ b ≤ c
    • 检查a + b > c,否则不能构成三角形。
    • 依次检查是否为等边、等腰或不等边三角形。

题解代码

classSolution{publicStringtriangleType(int[]nums){// 首先对数组进行排序,方便后续比较Arrays.sort(nums);inta=nums[0],b=nums[1],c=nums[2];// 检查是否能构成三角形:两边之和必须大于第三边if(a+b<=c){return"none";// 不能构成三角形}// 检查是否为等边三角形:三边相等if(a==c){return"equilateral";}// 检查是否为等腰三角形:至少两边相等if(a==b||b==c){return"isosceles";}// 否则为不等边三角形return"scalene";}}

复杂度分析

  1. 时间复杂度
    • 排序:O(1),因为数组长度固定为3。
    • 比较操作:O(1)。
    • 总体时间复杂度:O(1)。
  2. 空间复杂度
    • 排序可能使用少量额外空间:O(1)。
    • 其他变量为常数空间:O(1)。
    • 总体空间复杂度:O(1)。
http://www.jsqmd.com/news/745645/

相关文章:

  • 5分钟快速上手:TegraRcmGUI图形化界面让Nintendo Switch破解变得简单
  • 为团队统一开发环境使用 TaoToken CLI 一键配置多工具 API 密钥
  • 产品经理必看的博弈论实战:用Hotelling模型分析为什么奶茶店总扎堆开业
  • 告别ChatGPT依赖:用Ollama+Open WebUI在Linux服务器上打造你的私有AI知识库
  • Kemono Downloader终极指南:WinUI3批量下载工具深度解析与实战应用
  • 【限时技术窗口期】Java向量API兼容性断层预警:JDK 25→26将移除Beta标记,但现有代码需在Q3前完成VectorMask迁移(含自动化转换工具链)
  • 从Simulink模型到AUTOSAR代码:手把手演示Embedded Coder生成嵌入式C代码的全流程
  • 碧蓝航线自动脚本Alas:告别重复刷图,轻松享受策略乐趣
  • React Native动画:优雅移除DOM元素
  • 告别内存碎片烦恼:手把手教你用Linux scatterlist高效管理DMA传输
  • 八大网盘直链解析神器:告别限速困扰的智能下载解决方案
  • BaiduPCS-Go错误处理机制深度解析:从错误码到故障排查的完整技术实现
  • Dify插件开发指南:扩展AI工作流与自定义工具集成实践
  • 2026疏油层耐用钢化膜最新推荐:品牌实力测评,高性价比之选出炉 - 博客湾
  • 从电路到代码:零极点分析如何帮你避开运放振荡和滤波器设计的大坑?
  • 基于安卓的敏感文件加密保险箱系统毕业设计源码
  • 网盘直链下载助手完整指南:告别限速,获取真实下载地址
  • 智能图片去重利器:AntiDupl.NET如何拯救你的存储空间与工作效率
  • AI在C++上面能力弱的原因
  • 别再死记硬背!用5个经典C语言改错案例,彻底搞懂指针与内存管理
  • 智能客服系统集成Taotoken实现多模型话术优化与降本
  • 2026年4月景观设计团队推荐,屋顶花园设计/民宿规划设计/景观设计/寺庙景观设计,景观设计维护团队怎么选 - 品牌推荐师
  • Java低代码内核安全防线全拆解,从表达式注入、Ognl沙箱逃逸到RCE零日漏洞防御实战
  • Vue.js Ajax(axios)
  • Mule 4 DataWeave的灵活处理:JSON数组的映射实例
  • 第二章 · 鸟瞰全局 第 5 篇:银行系统分层体系总览
  • 基于安卓的物业巡检与工单管理系统毕业设计
  • 暗黑破坏神2存档编辑器:让你的游戏体验不再受限于运气
  • NifSkope:开源3D模型编辑器的专业解决方案
  • 如何解锁百度网盘Mac版SVIP功能:完整破解指南