https://github.com/SharingSource/LogicStack-LeetCode/wiki/%E5%8F%8C%E6%8C%87%E9%92%88
力扣3,15,16,18,19,611
一个从索引2出发遍历数组,一个指针从0开始向右移动,一个指针从i-开始向左移动。
class Solution {
public int triangleNumber(int[] nums) {
int count=0;
Arrays.sort(nums);
for(int i=2;i<nums.length;i++){
int left=0;
int right=i-1;
while(left<right){
if(nums[left]+nums[right]>nums[i]){//两数之和大于第三边
count+=right-left;//
right--;//右指针左移
}
else{
left++;//左指针右移
}
}
}
return count;
}
}
本文提供了一种解决力扣题目中关于寻找数组中能构成三角形的三元组数量的问题的有效算法。通过双指针技巧,在排序数组的基础上实现了O(n^2)的时间复杂度。适用于对算法优化及面试准备感兴趣的技术人员。
1201

被折叠的 条评论
为什么被折叠?



