题目

结果

代码
1 2 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),快排的栈