611. 有效三角形的个数
固定一个最大长度的边,另外两个边进行双指针移动。 当出现符合条件的双指针时,他们范围内的数也同样符合三角形。
public int triangleNumber(int[] nums) {
if (nums.length < 3) {
return 0;
}
Arrays.sort(nums);
int count = 0;
for (int i = nums.length - 1; i >= 2; 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;
}