976. 三角形的最大周长
Posted panweiwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了976. 三角形的最大周长相关的知识,希望对你有一定的参考价值。
思路:
想到:面积不为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. 三角形的最大周长的主要内容,如果未能解决你的问题,请参考以下文章