给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形,返回 0。
示例 1:
输入:nums = [2,1,2]
输出:5
示例 2:
输入:nums = [1,2,1]
输出:0
提示:
- 3 <= nums.length <= 104
- 1 <= nums[i] <= 106
Code:
class Solution {
public:
bool isValid(int a,int b,int c)
{
if(a+b>c&&(a+c>b)&&(b+c>a))
return true;
return false;
}
int largestPerimeter(vector<int>& nums) {
sort(nums.begin(),nums.end(),greater<int>());
for(int i=2;i<nums.size();++i)
{
if(isValid(nums[i],nums[i-1],nums[i-2]))
return nums[i]+nums[i-1]+nums[i-2];
}
return 0;
}
};