码迷,mamicode.com
首页 > 其他好文 > 详细

611. Valid Triangle Number

时间:2017-12-11 11:20:40      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:second   count   example   cond   span   put   enum   task   ber   

 

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

标签:second   count   example   cond   span   put   enum   task   ber   

原文地址:http://www.cnblogs.com/apanda009/p/8021757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!