Leetcode


思路:
如何判断三条边能否构成三角形?-> 三条边从小到大a、b、c当且仅当a+b>c,这三条边才能组成三角形
固定最长边,判断另外两条边

class Solution:
    def triangleNumber(self, nums) -> int:
        n = len(nums)
        res = 0
        nums = sorted(nums)
        for i in range(n-1, 1, -1):
            l, r = 0, i - 1
            while l < r:
                # 说明l~r-1之间的值都与num[r]一切构成
                if nums[l] + nums[r] > nums[i]:
                    res += r - l
                    r -= 1
                else:
                    l += 1
        return res
原文地址:https://www.cnblogs.com/NFii/p/12403201.html