979. 三角形的最大周长

Posted rencoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了979. 三角形的最大周长相关的知识,希望对你有一定的参考价值。

给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。

如果不能形成任何面积不为零的三角形,返回 0。

示例
输入:[3,6,2,3]
输出:8

代码

var largestPerimeter = function(A{
  if (A.length < 3) {
    return 0
  }
  A.sort((a, b) => a - b)
  for (let i = A.length - 1; i >= 2; i -= 1) {
    if (A[i - 1] + A[i - 2] > A[i]) { // 两个最大的加起来都没大于第三边,其他的就不需要尝试了
      return A[i] + A[i - 1] + A[i - 2]
    }
  }

  return 0
};

构成三角形的充要条件是: 两边之和大于第三边(此时肯定满足两边之差小于第三边)

以更加简单的方式去思考问题,最大那么就是倒序,能成为三角形那么就是判断前三个值是否能构成三角形

以上是关于979. 三角形的最大周长的主要内容,如果未能解决你的问题,请参考以下文章

三角形的最大周长

LC976 三角形的最大周长

976. 三角形的最大周长『简单』

976 三角形的最大周长--重要

290三角形的最大周长

976. 三角形的最大周长