题目:
给定由一些正数(代表长度)组成的数组 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
网友评论