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运行结果:
在这里插入图片描述
在这里插入图片描述
第一次提交错误是因为 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方法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值