611. 有效三角形的个数

2021-06-21 18:10:27 浏览数 (1)

给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。 输入: [2,2,3,4] 输出: 3 解释: 有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3

代码语言:javascript复制
class Solution {
    public int triangleNumber(int[] nums) {
        /**
        双指针:
            找到最大值(不断--)
            如果两个数之和>最大值  结果就 = right-left
         */
        Arrays.sort(nums);
        int n=nums.length;
        int res=0;
        for(int i=n-1;i>=2;--i){
            int left=0,right=i-1;
            while(left<right){
                if(nums[left] nums[right]>nums[i]){
                    res =right-left;// right和left之间的数
                     right--;//不断更新最大值
                }else{
                    left  ;
                }
            }
        }
        return res;
    }
}

0 人点赞