三角形类型判断题解

题目链接3024. 三角形类型 - 力扣(LeetCode)

题目分析

这道题要求我们根据给定的三个整数来判断它们能否构成一个三角形,并确定该三角形的类型。三角形的类型分为等边三角形(equilateral)、等腰三角形(isosceles)、不等边三角形(scalene),如果无法构成三角形则返回 "none"。

解题思路

解题的关键在于理解三角形的性质和各种类型三角形的定义:

  1. 三角形存在的条件:对于三条边 a、b、c,必须满足任意两边之和大于第三边。即:

    • a + b > c
    • a + c > b
    • b + c > a
  2. 等边三角形:三条边长度完全相等。

  3. 等腰三角形:恰好有两条边长度相等。

  4. 不等边三角形:三条边长度均不相等。

代码实现

class Solution {
public:
    string triangleType(vector<int>& nums) {
        int a = nums[0];
        int b = nums[1];
        int c = nums[2];
        if(a + b <= c || a + c <= b || b + c <= a){
            return "none";
        }else if(a == b && b == c && a == c){
            return "equilateral";
        }else if (a == b || b == c || a == c){
            return "isosceles";
        }else {
            return "scalene";
        }
    }
};

代码解释

  1. 变量初始化:从输入数组中提取三个整数作为三角形的三条边。
  2. 三角形存在检查:首先检查这三条边是否能构成一个三角形。如果任意两边之和小于或等于第三边,则返回 "none"。
  3. 等边三角形检查:如果三条边都相等,则返回 "equilateral"。
  4. 等腰三角形检查:如果恰好有两条边相等,则返回 "isosceles"。
  5. 不等边三角形:如果以上条件都不满足,则三条边长度互不相同,返回 "scalene"。

复杂度分析

  • 时间复杂度:O (1),因为只进行了固定次数的比较操作。
  • 空间复杂度:O (1),只使用了常数级的额外空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.wei-upup

如若对您有用,盼您赏个鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值