zoukankan      html  css  js  c++  java
  • 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
    };

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

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

  • 相关阅读:
    事务
    handler
    codeforces 27E Number With The Given Amount Of Divisors
    暑期实践日志(五)
    暑期实践日志(四)
    暑期实践日志(三)
    暑期实践日志(二)
    暑期实践日志(一)
    数论 UVALive 2756
    数论 UVALive 2911
  • 原文地址:https://www.cnblogs.com/rencoo/p/13380964.html
Copyright © 2011-2022 走看看