• leetcode976之三角形最大周长


    题目描述:

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

    如果不能形成任何面积不为零的三角形,返回 0

     1 def largePara(A):
     2     A.sort(reverse=True)
     3     for i in range(len(A) - 2):
     4         if A[i] < A[i + 1] + A[i + 2]:
     5             return A[i] + A[i + 1] + A[i + 2]
     6 
     7     return 0
     8 
     9 
    10 print('-----------测试largepara()------------')
    11 A = [3, 6, 2, 3]
    12 l = largePara(A)
    13 print('l=', l)
    14 
    15 
    16 def largepara1(A):
    17     A.sort(reverse=True)
    18     for i in range(len(A) - 2):
    19         res = 0
    20         if A[i] < A[i + 1] + A[i + 2]:
    21             res = A[i] + A[i + 1] + A[i + 2]
    22             break
    23 
    24     return res
    25 
    26 
    27 print('===========测试largepara1()============')
    28 cic = largepara1(A)
    29 print("circu=", cic)
    30 
    31 
    32 def largePara2(A):
    33     '''
    34     while 循环实现,减少时空复杂度
    35     :param A:
    36     :return:
    37     '''
    38     i = 0
    39     A.sort(reverse=True)
    40     while i < len(A) - 2:
    41         if A[i] < A[i + 1] + A[i + 2]: return A[i] + A[i + 1] + A[i + 2]
    42         i = i + 1
    43     return 0
    44 
    45 
    46 print('_______-测试largePara()__________')
    47 circu = largePara2(A)
    48 print('circu=', circu)
    49 
    50 
    51 def largePara3(A):
    52     def istriangle(a, b, c):
    53         if a + b > c and a + c > b and b + c > a:
    54             return True
    55         else:
    56             return False
    57 
    58     A.sort(reverse=True)
    59     for i in range(len(A) - 2):
    60         if istriangle(A[i], A[i + 1], A[i + 2]):
    61             return A[i] + A[i + 1] + A[i + 2]
    62 
    63     return 0
    64 
    65 
    66 print("*************测试largePara3(A)***********")
    67 L = largePara3(A)
    68 print("L=", L)

    输出:

    -----------测试largepara()------------
    l= 8
    ===========测试largepara1()============
    circu= 8
    _______-测试largePara()__________
    circu= 8
    *************测试largePara3(A)***********
    L= 8
  • 相关阅读:
    Slimer软工课设日报-2016年6月30日
    Slimer软工课设日报-2016年6月29日
    软件工程个人总结
    什么是Bug
    构建之法读后感----第1章 绪论
    7.4
    7.1-7.3
    6.29
    软件工程课设 第二天
    软工总结 作业
  • 原文地址:https://www.cnblogs.com/rounie/p/13026635.html
Copyright © 2020-2023  润新知