LC611 有效三角形个数


1 题目

给定一个包含非负整数的数组 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

提示:

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000

2 解答

# leetcode submit region begin(Prohibit modification and deletion)
class Solution:
    def triangleNumber(self, nums: List[int]) -> int:
        nums.sort(reverse = True)
        res = 0
        n = len(nums)

        for i in range(0 , n , 1):
            
            left = i+1
            right = n-1
            while left<right:
                s = nums[left] + nums[right]
                if s > nums[i]:
                    res = res + right - left
                    left += 1
                else :
                    right -= 1
        return res
        
# leetcode submit region end(Prohibit modification and deletion)
posted @ 2025-08-26 22:14  AxonoSensei  阅读(9)  评论(0)    收藏  举报