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
}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容