题目

结果

代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | class Solution {public int largestPerimeter(int[] A) {
 Arrays.sort(A);
 for (int i = A.length - 1; i > 1; i--) {
 if (isTriangle(A[i - 2], A[i - 1], A[i])) {
 return A[i - 2] + A[i - 1] + A[i];
 }
 }
 return 0;
 }
 
 private boolean isTriangle(int a, int b, int c) {
 return a + b > c;
 }
 }
 
 | 
数学题,关键在于这三条边在排序后的数组中一定是相邻的。
复杂度
时间复杂度:O(N Log N),快排
空间复杂度:O(Log N),快排的栈