[leetcode] 611. Valid Triangle Number

网友投稿 243 2022-11-06


[leetcode] 611. Valid Triangle Number

Description

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

Note:

The length of the given array won’t exceed 1000.The integers in the given array are in the range of [0, 1000].

分析

题目的意思是:从数组中选择三个数构成三角形,求满足要求的组合情况的数目。

这道题用两边之和大于第三边的方法的话,就很暴力了,如果换一下,给数组排一下顺序,如果两个小边>大边就行了。然后就变成了3 sum的暴力问题。

代码

class Solution {public: int triangleNumber(vector& nums) { sort(nums.begin(),nums.end()); int sum=0; for(int i=0;inums[k]){ k++; } sum+=k-j-1; } } return sum; }};

参考文献

​​611. Valid Triangle Number​​


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[leetcode] 146. LRU Cache
下一篇:java中Map、Set、List的简单使用教程(快速入门)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~