欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode python-976. 三角形的最大周长

程序员文章站 2024-02-21 14:23:40
...

LeetCode python-976. 三角形的最大周长

先看题目:
(题目来力扣网站
LeetCode python-976. 三角形的最大周长
思路:
拿到这道题,首先想到三个数构成三角形的条件,两边之和大于第三边和两边之差小于第三边,导致运算复杂。若已知最大的一个数,其余两个数之和大于最大的这个数,既可构成三角形。
如何判定三条边是否可以构成三角形
①排序,将给定的列表进行从大到小排序。
②满足构成三角形的条件,返回周长,不满足则返回0。

PyCharm:

class Solution:
    def largestPerimeter(self, A):
        arr = sorted(A,reverse=True) #此处注意sort和sorted的区别,可用A.sort(reverse=True)替换。reverse=True,表示降序排列。
        lens = len(A) - 2
        for i in range(lens): #从左到右遍历,从i=0起。
            if arr[i] < arr[i+1] + arr[i+2]:
                res = arr[i] + arr[i+1] +arr[i+2]
                return res
        return 0
p = Solution()#在pycharm中调试代码,在leetcode中可不写以下代码。
A = [1,2,1]
res = p.largestPerimeter(A)
print(res)

LeetCode运行结果:
LeetCode python-976. 三角形的最大周长
LeetCode python-976. 三角形的最大周长
第一次提交错误是因为 if arr[i] < arr[i+1] + arr[i+2]:中,将<写成了<=。

收获:


如何判断三条边是否可以构成三角形。

sort和sorted的区别:
列表对象方法:sort只能操作列表list。语法:list.sort(key=None, reverse=False)
内建函数:sorted,可以对所有可迭代对象进行排序。语法:sorted(iterable,reverse=False)
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值。
内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
python中的sort方法和sorted方法