leetcode 第611题-有效三角形的个数

链接: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
}


你可能感兴趣的:(leetcode 第611题-有效三角形的个数)