1. 題目
2. 分析
需要分析好再動手編程。
如果要構成三角形的最大周長,那么就需要盡可能用最長的邊構建。所以可以先對數組排個序,然后基于排序得到的結果從大往小的逐個檢查長度為3的窗口,判斷該窗口的值是否滿足三角形的構成條件,如果滿足輸出值,如果不滿足,接著遍歷。
3. 代碼
class Solution:def largestPerimeter(self, nums: List[int]) -> int:nums.sort()max_len = 0for right in reversed(range(0,len(nums))): left = right - 2mid = right - 1if (mid >=1 ):if (nums[left] + nums[mid] > nums[right] and (nums[right] - nums[mid] < nums[left] )):max_len = nums[left] + nums[mid] + nums[right] breakreturn max_len