976. 三角形最大周长

三角形最大周长

976. 给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形,返回 0。

  • 思路:判断三个长度能否组成三角形的条件:任意两边之和大于第三边
# 1. 按长度自小到大排序 --> a <= b <= c
# 2. 排序后可得:
#    a + c > b
#    b + c > a
# 因此,只需判断 a + b > c 是否成立
def largestPerimeter(self, nums: List[int]) -> int:
    if nums==None or len(nums)<3:
        return 0
    nums.sort()

    i = len(nums)-1
    while i >= 2:
        if nums[i]<(nums[i-1]+nums[i-2]):
            return (nums[i]+nums[i-1]+nums[i-2])
        i -= 1
    return 0
posted @ 2022-03-25 10:00  ArdenWang  阅读(57)  评论(0)    收藏  举报