class Solution {
public:
int largestPerimeter(vector<int>& A) {
sort(A.begin(),A.end());//从小到大排序
int len=A.size();//获取长度
for(int i=len-1;i>1;i--){//遍历
if(A[i]<A[i-1]+A[i-2]){
return A[i]+A[i-1]+A[i-2];
}
}
return 0;
}
};
未参考题解
合法又最大的三角形周长,每次从大到小遍历三个 检验是否合法
如果合法 一定是最大的
如果不合法 那三个数当中的最大数 一定不能和前面数中的两个组成合法三角形 假设三个数为a,b,c 且a<b<c o为任意一个a前面的数 可以由a+b<c证明o+o<c 故成立。