611 有效三角形的个数
本文最后更新于:2021年3月26日 下午
给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。
示例 1:
1 |
|
注意:
- 数组长度不超过1000。
- 数组里整数的范围为 [0, 1000]。
Solution
参考 @ffreturn
- 如何可以构成三角形,其实就是最短的两边之和 a + b > c (c是最长的边)
思路:
排序后我们就能知道哪些是最大和最小边
外循环是最小边a,内循环是中间边b,还有一个是最长边c,这里会不断增加a
a的范围是 0~n-2
b的范围是 a+1, n-1
如何快速计算组合数量呢
对于当前固定a和固定的b,那么就是不断扩大c直到不满足 a+b > c的条件
此时表示到c范围内的这些数字都是可以满足条件的(记得排除c本身)
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!