列表

详情


3024. 三角形类型

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

如果这个数组无法构成一个三角形,请你返回字符串 "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"。

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: string triangleType(vector<int>& nums) { } };

golang 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2024-02-19 09:25:09

func triangleType(nums []int) string {
	slices.Sort(nums)
	x, y, z := nums[0], nums[1], nums[2]
	if x+y <= z { // 排序后,只需比较 x+y 和 z
		return "none"
	}
	if x == z { // 排序了,说明 y 也和 x z 相等
		return "equilateral"
	}
	if x == y || y == z {
		return "isosceles"
	}
	return "scalene"
}

python3 解法, 执行用时: 32 ms, 内存消耗: 16.4 MB, 提交时间: 2024-02-19 09:24:39

class Solution:
    def triangleType(self, nums: List[int]) -> str:
        nums.sort()
        if nums[0] + nums[1] <= nums[2]: return 'none'
        elif nums[0] == nums[2]: return 'equilateral'
        elif nums[1] == nums[0] or nums[1] == nums[2]: return 'isosceles'
        else: return 'scalene'

上一题