【LetMeFly】3024.三角形类型:手速题 力扣题目链接:https://leetcode.cn/problems/type-of-triangle/
给你一个下标从 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"。
提示:
nums.length == 3
1 <= nums[i] <= 100
解题方法:if-else 为了判断给定三个变长是否满足三角形的基本性质(以及是否有两边等长),可以先将三个数从小到大排个序。
如果两边之和小于等于第三边则不能构成三角形
如果三边全相等则为正三角形
如果有任何两边相等则为等腰三角形
否则为普通三角形
以上。
AC代码 C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Solution {public : string triangleType (vector<int >& nums) { sort (nums.begin (), nums.end ()); if (nums[0 ] + nums[1 ] <= nums[2 ]) { return "none" ; } if (nums[0 ] == nums[1 ] && nums[1 ] == nums[2 ]) { return "equilateral" ; } if (nums[0 ] == nums[1 ] || nums[1 ] == nums[2 ]) { return "isosceles" ; } return "scalene" ; } };
Python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ''' Author: LetMeFly Date: 2025-05-19 13:22:46 LastEditors: LetMeFly.xyz LastEditTime: 2025-05-19 13:30:25 ''' from typing import List class Solution : def triangleType (self, nums: List [int ] ) -> str : nums.sort() a, b, c = nums if a + b <= c: return "none" if a == b == c: return "equilateral" if a == b or b == c: return "isosceles" return "scalene"
Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import java.util.Arrays;class Solution { public String triangleType (int [] nums) { Arrays.sort(nums); if (nums[0 ] + nums[1 ] <= nums[2 ]) { return "none" ; } if (nums[0 ] == nums[1 ] && nums[1 ] == nums[2 ]) { return "equilateral" ; } if (nums[0 ] == nums[1 ] || nums[1 ] == nums[2 ]) { return "isosceles" ; } return "scalene" ; } }
Go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package mainimport "sort" func triangleType (nums []int ) string { sort.Ints(nums) if nums[0 ] + nums[1 ] <= nums[2 ] { return "none" } if nums[0 ] == nums[1 ] && nums[1 ] == nums[2 ] { return "equilateral" } if nums[0 ] == nums[1 ] || nums[1 ] == nums[2 ] { return "isosceles" } return "scalene" }
同步发文于CSDN 和我的个人博客 ,原创不易,转载经作者同意后请附上原文链接 哦~
千篇源码题解已开源