使用 Python 查找最大周长三角形的程序


假设我们有一个长度为正的数组 nums,我们需要通过从该数组中取三个值来找到最大周长的三角形。当不可能形成任何非零面积的三角形时,则返回 0。

因此,如果输入类似于 [8,3,6,4,2,5],则输出将为 19。

为了解决这个问题,我们将遵循以下步骤:

  • 对列表 nums 进行排序

  • a := 从 nums 中删除最后一个元素

  • b := 从 nums 中删除最后一个元素

  • c := 从 nums 中删除最后一个元素

  • 当 b+c <= a 时,执行以下操作:

    • 如果 nums 中的非零数量为 0,则

      • 返回 0

    • a := b

    • b := c

    • c := 从 nums 中删除最后一个元素

  • 返回 a+b+c

让我们看看以下实现以获得更好的理解:

示例

 动态演示

def solve(nums):
   nums.sort()
   a, b, c = nums.pop(), nums.pop(), nums.pop()
   while b+c<=a:
      if not nums:
         return 0
      a, b, c = b, c, nums.pop()
   return a+b+c
nums = [8,3,6,4,2,5]
print(solve(nums))

输入

[8,3,6,4,2,5]

输出

19

更新于:2021 年 5 月 29 日

470 次浏览

开始你的 职业

完成课程,获得认证

开始
广告