找最大的周长,也就是(a+b+c)最大,如果三个数要想构成三角形的话,需要(a+b>c)。固定(c)端点,使得(a+b)尽可能的大,所以排序扫一遍就ok了。
代码如下:
class Solution {
public:
int largestPerimeter(vector<int>& A) {
sort(A.begin(), A.end());
for (int i = A.size() - 1; i > 1; i--) {
if (A[i - 1] + A[i - 2] > A[i]) return A[i - 1] + A[i - 2] + A[i];
}
return 0;
}
};