链接:https://leetcode-cn.com/problems/valid-triangle-number/
package leetcode
import "sort"
func TriangleNumber(nums []int) int {
sort.Ints(nums) //先排序
var ans int
//固定最长边,双指针移动选取符合条件的另外两条边
for i := len(nums) - 1; i >= 2; i-- {
l := 0 //左边
r := i - 1 //右边
for l < r {
if nums[l]+nums[r] > nums[i] {
ans += r - l //左边+右边的和>最长边 则中间的都满足条件组成三角形
r--
} else {
l++
}
}
}
return ans
}