用贪心,先对所有数据进行排序,再把最大的三个值进行比较看是否能组成三角形,如果不行则向后沿,如果可以组成三角形则返回。
class Solution {
public:
int largestPerimeter(vector<int>& A) {
sort(A.begin(),A.end());
for(int i=A.size()-1;i>=2;i--){
if(A[i]<A[i-1]+A[i-2]){
return A[i]+A[i-1]+A[i-2];
}
}
return 0;
}
};