LeetCode 976. Largest Perimeter Triangle
考点 | 难度 |
---|---|
Sorting | Easy |
题目
Given an integer array nums
, return the largest perimeter of a triangle with a non-zero area, formed from three of these lengths. If it is impossible to form any triangle of a non-zero area, return 0.
思路
三角形必须满足a+b>c
。先对所有数排序,选最大的数作为c,第二个和第三个作为a和b,检查是否满足条件。如果不满足说明剩下的数里没有a和b能和这个c满足三角形条件,所以把所有数向前移动一位。
答案
public int largestPerimeter(int[] A) {
Arrays.sort(A);
for (int i = A.length - 3; i >= 0; --i)
if (A[i] + A[i+1] > A[i+2])
return A[i] + A[i+1] + A[i+2];
return 0;
}