1. 题目
2. 分析
需要分析好再动手编程。
如果要构成三角形的最大周长,那么就需要尽可能用最长的边构建。所以可以先对数组排个序,然后基于排序得到的结果从大往小的逐个检查长度为3的窗口,判断该窗口的值是否满足三角形的构成条件,如果满足输出值,如果不满足,接着遍历。
3. 代码
class Solution:
def largestPerimeter(self, nums: List[int]) -> int:
nums.sort()
max_len = 0
for right in reversed(range(0,len(nums))):
left = right - 2
mid = right - 1
if (mid >=1 ):
if (nums[left] + nums[mid] > nums[right] and
(nums[right] - nums[mid] < nums[left] )):
max_len = nums[left] + nums[mid] + nums[right]
break
return max_len