首页 > 其他 > 详细

976. 三角形的最大周长

时间:2020-04-16 16:10:32      阅读:61      评论:0      收藏:0      [点我收藏+]

技术分享图片

思路:
想到:面积不为0,即能组成三角形,面积就不会是0,即满足两边之和大于第三边。
1、将数组A降序排列,三个指针:up,mid,low分别指向前三个元素;
循环结束条件是:low=len(A);
2、若满足两边之和大于第三边,即up<mid+low,则返回up+mid+low;
3、不满足up<mid+low,则三指针同步后移一位。
 1 class Solution(object):
 2     def largestPerimeter(self, A):
 3         """
 4         :type A: List[int]
 5         :rtype: int
 6         """
 7         # 在原址上降序排列
 8         A.sort(reverse=True)
 9         up, mid, low = 0, 1, 2
10         while low < len(A):
11             # 满足两边之和大于第三边,返回周长
12             if A[up] < A[mid] + A[low]:
13                 return A[up] + A[mid] + A[low]
14             # 否则三指针后移
15             else:
16                 up, mid, low = mid, low, low + 1
17         return 0
18 
19 
20 if __name__ == __main__:
21     solution = Solution()
22     print(solution.largestPerimeter([3, 6, 2, 3]))

 

 

976. 三角形的最大周长

原文:https://www.cnblogs.com/panweiwei/p/12712688.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!