[3]611. Valid Triangle Numbe(Java)

来源:互联网 发布:唯美现代诗 知乎 编辑:程序博客网 时间:2024/06/05 20:53

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: 3Explanation:Valid combinations are: 2,3,4 (using the first 2)2,3,4 (using the second 2)2,2,3

Note:

1、The length of the given array won't exceed 1000.2、The integers in the given array are in the range of [0, 1000].
class Solution {    public int triangleNumber(int[] nums) {        Arrays.sort(nums);        int count = 0;        int n = nums.length;        for (int i = n - 1; i >= 2; i --) {            int left = 0, right = i - 1;            while (left < right) {                if (nums[left] + nums[right] > nums[i]) {                    count += right - left;                      right --;                } else {                    left ++;                }            }        }        return count;    }}