leetcode_611. 有效三角形的个数--未解决的枚举优化
作者:互联网
leetcode_611
题目描述
给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。
示例 1:
输入: [2,2,3,4]
输出: 3
解释: 有效的组合是:
2,3,4 (使用第一个 2)
2,3,4 (使用第二个 2)
2,2,3
注意:
数组长度不超过1000。
数组里整数的范围为 [0, 1000]。
通过次数34,777提交次数66,576
来源:力扣(LeetCode)
题目大意
给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。
思路描述
当前就一种思路:三重循环遍历枚举找出时间复杂度O(n^3)
应还有两种做法,
- 一种是 暴力枚举+二分查找法是暴力枚举破解的优化版本时间复杂度*O((log n)n^2)
- 第二种是 双指针方法时间复杂度O(n^2)
代码
三重循环遍历枚举:
class Solution {
public int triangleNumber(int[] nums) {
Arrays.sort(nums);
int sum=0;
for(int a=0;a<nums.length-2;a++){
for(int b=a+1;b<nums.length-1;b++){
for(int c=b+1;c<nums.length;c++){
if(nums[a]+nums[b]>nums[c]&&nums[c]-nums[b]<nums[a]){
sum++;
}
}
}
}
return sum;
}
}
写在最后
如果感觉写的还不错的话不妨分享给其他人,以求共同进步!
文章如有错误之处请指出,我会听取并改正!
标签:数组,nums,--,sum,611,int,枚举,复杂度,leetcode 来源: https://blog.csdn.net/Adorablenewbaby/article/details/119390806