- Largest Perimeter Triangle
Given an integer array nums, return the largest perimeter of a triangle with a non-zero area, formed from three of these lengths. If it is impossible to form any triangle of a non-zero area, return 0.
Example 1:
Input: nums = [2,1,2]
Output: 5
Example 2:
Input: nums = [1,2,1]
Output: 0
Example 3:
Input: nums = [3,2,3,4]
Output: 10
Example 4:
Input: nums = [3,6,2,3]
Output: 8
Constraints:
3 <= nums.length <= 104
1 <= nums[i] <= 106
class Solution:
def largestPerimeter(self, nums: List[int]) -> int:
nums.sort()
i = -3
while i >= -len(nums):
j, k, l = nums[i], nums[i+1], nums[i+2]
if j+k > l:
return j+k+l
else:
i -= 1
return 0
思路:
列表排序后, 从最后面开始看是否符合要求, 符合就输出周长, 不然就整个窗口往左滑一格