976. Largest Perimeter Triangle

Leetcode link

题目简介

这是道简单,题目给我们一个数组 nums,数组元素代表线段的长度,题目要求我们从中找出三条边组成三角形,并且要求返回组成三角形中边长最长的三角形的边长,如果不能组成三角形则返回 0

解题思路

三角形能组成的条件是两边之和要大于第三边

为了减少计算量,我们可以先对数组 nums 进行降序排序

接下来,我们只需要找连续的三个长度是否符合三角形组成条件即可

Javascript

/**
 * @param {number[]} nums
 * @return {number}
 */
var largestPerimeter = function (nums) {
    const sortedNums = nums.toSorted((a, b) => b - a)
    for (let i = 0; i < sortedNums.length - 2; i++) {
        if(sortedNums[i] < sortedNums[i + 1] + sortedNums[i+2]) {
            return sortedNums[i] + sortedNums[i + 1] + sortedNums[i+2]
        }
    }
    return 0
};

results matching ""

    No results matching ""