三角形的最大周长
一、LeetCode题解
瞧一瞧~
- 博健的LeetCode题解:Gitbook版本传送门
- 博健的LeetCode题解:CSDN传送门
- 有趣的CSS:Gitbook传送门
- 前端进阶笔记:Gitbook传送门
做题路线( ** =当前阶段)
- 阶段一(解题总数,单题题解数至上)**
- 阶段二(解题质量至上)
- 阶段三(算法思想至上)
二、算法题
题目
给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。
如果不能形成任何面积不为零的三角形,返回 0。
示例 1:
输入:[2,1,2]
输出:5
示例 2:
输入:[1,2,1]
输出:0
示例 3:
输入:[3,2,3,4]
输出:10
提示:
- 3 <= A.length <= 10000
- 1 <= A[i] <= 10^6
解法一(排序)
- 对数组进行排序
- 💡三个一组,进行三角形验证
复杂度分析
- 时间复杂度:O(NlogN),其中 N 是数组 A 的长度。
- 空间复杂度:O(1)。
var largestPerimeter = function(arr) {
arr.sort(function(a, b) { return b - a });
for (let i = 0; i < arr.length - 2; i++) {
var a = arr[i],
b = arr[i + 1],
c = arr[i + 2];
if (a < b + c) {
return (a + b + c);
}
}
return 0;
};