给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。
如果不能形成任何面积不为零的三角形,返回 0。
示例 1:
输入:[2,1,2]
输出:5
示例 2:
输入:[1,2,1]
输出:0
代码
class Solution {public int largestPerimeter(int[] A) {int n=A.length;Arrays.sort(A);//排序for(int i=n-1;i>=0;i--){int l=i-1,r=i-2;if(r<0) return 0;if(A[l]+A[r]<=A[i]) continue;//如果当前情况不满足,后面更短的两条边,也不可能满足return A[l]+A[r]+A[i];//如果情况满足,则直接返回}return 0;}
}