首先对数组进行排序,成为一个生叙述组,从尾部开始循环,如果此数前面的两个数的和小于等于此数,构成不了三角形,否则就是周长最大的三角形,代码如下
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; } };