三角形的最大周长(976)
976. 三角形的最大周长 - 力扣(LeetCode)
可以一起总结的题目:三数之和(15)-CSDN博客
官方解法:
class Solution {
public:
//官方解法
int largestPerimeter(vector<int>& nums)
{
sort(nums.begin(), nums.end());
for (int i = nums.size() - 1; i >= 2; --i) {
//先排序,因为是求最大的能构成三角形的周长,对于排序数组只需要满足nums[i-2] + nums[i-1] > nums[i],从大往小找,体现贪心的算法思想。
if (nums[i-2] + nums[i-1] > nums[i]) {
return (nums[i-2] + nums[i-1] + nums[i]);
}
}
return 0;
}
};
总结:
计算的时间复杂度O(NlogN),空间复杂度O(1),算法细节如注释所示。有联系的题目三数之和(15)-CSDN博客,都是三数之和相关的问题。