611. Valid Triangle Number

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了611. Valid Triangle Number相关的知识,希望对你有一定的参考价值。

 

Given an array consists of non-negative integers, your task is to count the number of triplets chosen from the array that can make triangles if we take them as side lengths of a triangle.

Example 1:
Input: [2,2,3,4]
Output: 3
Explanation:
Valid combinations are: 
2,3,4 (using the first 2)
2,3,4 (using the second 2)
2,2,3

Assume a is the longest edge, b and c are shorter ones, to form a triangle, they need to satisfy len(b) + len(c) > len(a).

L:

这是return numbers, return value 刚简单, 首先sort ,然后遍历,看当前值+ 前值> 后值

 

public class Solution {
    public int triangleNumber(int[] nums) {
        int result = 0;
        if (nums.length < 3) return result;
        
        Arrays.sort(nums);

        for (int i = 2; i < nums.length; i++) {
            int left = 0, right = i - 1;
            while (left < right) {
                if (nums[left] + nums[right] > nums[i]) {
                    result += (right - left);
                    right--;
                }
                else {
                    left++;
                }
            }
        }
        
        return result;
    }
}

  

以上是关于611. Valid Triangle Number的主要内容,如果未能解决你的问题,请参考以下文章

611. Valid Triangle Number

[leetcode-611-Valid Triangle Number]

[LeetCode] 611. Valid Triangle Number

[leetcode]611. Valid Triangle Number有效三角数

611. Valid Triangle Number三角形计数

LeetCode 611. Valid Triangle Number