976. Largest Perimeter Triangle(easy)
Given an array
A
of positive lengths, return the largest perimeter of a triangle with non-zero area, formed from 3 of these lengths.If it is impossible to form any triangle of non-zero area, return
0
.
Example 1:
Input: [2,1,2] Output: 5Example 2:
Input: [1,2,1] Output: 0Example 3:
Input: [3,2,3,4] Output: 10Example 4:
Input: [3,6,2,3] Output: 8
题目要求满足三角形的三条边的最大和
刚开始的想法是 把所有满足的三条边求出来 然后用max求最大和,但是超时
于是看了solution,精髓在于先排序,因为要最大和,那就从最大的三条边开始遍历,找到第一个满足的三角形就直接返回
class Solution:
def largestPerimeter(self, A):
"""
:type A: List[int]
:rtype: int
"""
A.sort(reverse=True)
for i in range(len(A) - 2):
if A[i+1] + A[i+2] > A[i]:
return A[i] + A[i+1] + A[i+2]
return 0