假设我们有一个正长度的数组A,我们必须找到面积为非零的三角形的最大周长,该三角形由这些长度中的3个组成。当不可能形成任何非零区域的三角形时,则返回0。
因此,如果输入类似于[3,6,2,3],则输出将为8。
为了解决这个问题,我们将遵循以下步骤-
排序列表A
a:=从A删除最后一个元素
b:=从A删除最后一个元素
c:=从A删除最后一个元素
当b + c <= a时
返回0
如果不是A不为零,则
a:= b
b:= c
c:=从A删除最后一个元素
返回a + b + c
让我们看下面的实现以更好地理解-
class Solution: def largestPerimeter(self, A): A.sort() a, b, c = A.pop(), A.pop(), A.pop() while b+c<=a: if not A: return 0 a, b, c = b, c, A.pop() return a+b+c ob = Solution()print(ob.largestPerimeter([3,6,2,3]))
[3,6,2,3]
输出结果
8