(剑指offer)leetcode976. 最大周长三角形

题目

给定一个正长度的数组A,返回由三个长度组成的非零面积三角形的最大周长,如果不可能形成非零面积的三角形,则返回0。

思路

首先对数组按照升序排序,然后从后往前找到满足最大周长的a[i],a[i-1]和a[i-2]。

理论证明,要满足最大周长三角形,则在升序数组中,该三角形的三条边a,b,c相邻,并且满足a+b>c。

代码

/**
     * 给定一个升序正长度的数组A,
     * 返回由三个长度组成的非零面积三角形的最大周长;
     * 如果不可能形成非零面积的三角形,则返回0。
     */
    public static int findMax(int[] A){
        //符合判断条件,Arrays.sort(A);
        for(int i= A.length-1;i>=2;i--){
            if(A[i-2] > A[i] - A[i-1]){
               return A[i-2] + A[i] + A[i-1];
            }
        }
        return 0;
    }
展开阅读全文
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值