「每日LeetCode」2020年11月29日

本文最后更新于:2023年3月19日 晚上

Lt976. 三角形的最大周长,排序

976. 三角形的最大周长

给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。
如果不能形成任何面积不为零的三角形,返回 0
 示例 1:

1
2
输入:[2,1,2]
输出:5

示例 2:

1
2
输入:[1,2,1]
输出:0

示例 3:

1
2
输入:[3,2,3,4]
输出:10

示例 4:

1
2
输入:[3,6,2,3]
输出:8

提示:

  1. 3 <= A.length <= 10000
  2. 1 <= A[i] <= 10^6

思路

排序

按降序排序,从第一个开始,判断连续的三个元素是否可以构成三角形,可以的话返回这三个元素的和。

解答

排序

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* @param {number[]} A
* @return {number}
*/
var largestPerimeter = function (A) {
A.sort((a, b) => b - a);
let index = 0;
for (index = 0; index < A.length - 2; index++) {
if (A[index + 2] + A[index + 1] > A[index])
return A[index] + A[index + 1] + A[index + 2];
}
return 0;
};