976.三角形的最大周长
链接:976.三角形的最大周长
难度:Easy
标签:贪心、数组、数学、排序
简介:给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。
题解 1 - typescript
- 编辑时间:2020-11-29
- 执行用时:136ms
- 内存消耗:42.8MB
- 编程语言:typescript
- 解法介绍:贪心,从最长数寻找。
function largestPerimeter(A: number[]): number {
  A.sort((a, b) => a - b);
  const len = A.length;
  const can = (edge1: number, edge2: number, edge3: number): number =>
    edge1 + edge2 > edge3 && edge2 + edge3 > edge1 && edge1 + edge3 > edge2
      ? edge1 + edge2 + edge3
      : 0;
  for (let i = len - 1; i >= 0; i--) {
    const num = can(A[i], A[i - 1], A[i - 2]);
    if (num !== 0) return num;
  }
  return 0;
}