LeetCode 解题:统计能够组成三角形的三元组个数
题目描述
给定一个包含非负整数的数组 nums
,你需要返回其中能够组成三角形三条边的三元组个数。一个三元组 (a, b, c)
能够构成三角形的条件是,三条边必须满足三角形不等式,即:
a + b > c
a + c > b
b + c > a
这里我们只需要判断其中一条条件即可(通常选择 a + b > c
,因为在排序数组后,a <= b <= c
)。所以,问题转化为如何高效地找到符合条件的三元组。
解题分析
三角形不等式
在解题之前,我们需要明确三角形不等式的概念。三角形不等式指出,在任意一个三角形中,任意两边的和必须大于第三边。因此,给定一个数组中的任意三条边 a
, b
, c
,它们能组成三角形的条件是:
a + b > c
(如果a <= b <= c
,这个条件就能涵盖其他两个条件)
思路
- 排序数组:首先,对给定的数组
nums
进行排序。这样一来,如果我们选定了三个数nums[i]
,