首先对数组进行排序,成为一个生叙述组,从尾部开始循环,如果此数前面的两个数的和小于等于此数,构成不了三角形,否则就是周长最大的三角形,代码如下
class Solution {
public:
int largestPerimeter(vector<int>& A) {
sort(A.begin(), A.end());
int max_length = 0;
for (int i = A.size() - 1; i >= 2; i--) {
if (A[i - 1] + A[i - 2] > A[i]) {
max_length = max(max_length, A[i-1] + A[i-2] + A[i]);
}
}
return max_length;
}
};