美文网首页
力扣(LeetCode)之三角形最大周长(贪心算法)

力扣(LeetCode)之三角形最大周长(贪心算法)

作者: 小黄不头秃 | 来源:发表于2023-10-12 15:51 被阅读0次
题目:

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

示例:

输入:nums = [2,1,2]
输出:5
解释:你可以用三个边长组成一个三角形:1 2 2。

输入:nums = [1,2,1,10]
输出:0
解释:
你不能用边长 1,1,2 来组成三角形。
不能用边长 1,1,10 来构成三角形。
不能用边长 1、2 和 10 来构成三角形。
因为我们不能用任何三条边长来构成一个非零面积的三角形,所以我们返回 0。
方法一:

首先我们需要确认的是,怎么样能够构成一个三角形。这里,仅需要满足一个条件就是两边之和大于第三边。第三边是最大边。

然后,我们需要将数组从小到大进行排序。
接着我们从数组从后往前进行遍历,这就能确保取到的值是最大的,接下来我们仅需判断该三角形是否满足三角形的条件.(即:两边之和大于第三边。)

# 贪心算法
def fun(A):
    arr = sorted(A)
    a = 0
    b = 0
    c = 0
    for i in range(len(arr)-1, 1, -1):
        a = arr[i-1]
        b = arr[i-2]
        c = arr[i]
        if a + b > c:
            return a+b+c 
    return 0

相关文章

网友评论

      本文标题:力扣(LeetCode)之三角形最大周长(贪心算法)

      本文链接:https://www.haomeiwen.com/subject/alzevdtx.html