611. 有效三角形的个数

发布时间 2023-07-02 21:38:04作者: 乐乐章

难度中等

给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。

 

示例 1:

输入: nums = [2,2,3,4]
输出: 3
解释:有效的组合是: 
2,3,4 (使用第一个 2)
2,3,4 (使用第二个 2)
2,2,3

示例 2:

输入: nums = [4,2,3,4]
输出: 4

 

class Solution:
    def triangleNumber(self, nums: List[int]) -> int:
        nums = sorted(nums)
        print(nums)
        n = len(nums)
        res = 0 
        for i in range(0,n)[::-1]:
            l = 0
            r = i-1
            while l<r:
                if nums[l]+nums[r]> nums[i]:
                    res+=(r-l)
                    r-=1
                else:
                    l+=1
        return res