611:有效三角形的个数(二分法)
This commit is contained in:
parent
8882bfbe4e
commit
ede6b0a012
@ -40,11 +40,23 @@ class ValidTriangleNumber {
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
for (int i = 0; i < nums.length; i++) {
|
for (int i = 0; i < nums.length; i++) {
|
||||||
for (int j = i - 1; j >= 0; j--) {
|
for (int j = i - 1; j >= 0; j--) {
|
||||||
int k = 0;
|
// int k = 0;
|
||||||
while (k < j && nums[j] + nums[k] <= nums[i]) {
|
// while (k < j && nums[j] + nums[k] <= nums[i]) {
|
||||||
k++;
|
// k++;
|
||||||
|
// }
|
||||||
|
// count += j - k;
|
||||||
|
int start = 0, end = j - 1;
|
||||||
|
while (start < end) {
|
||||||
|
int mid = start + end >> 1;
|
||||||
|
if (nums[mid] + nums[j] > nums[i]) {
|
||||||
|
end = mid;
|
||||||
|
} else {
|
||||||
|
start = mid + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (start == end && nums[end] + nums[j] > nums[i]) {
|
||||||
|
count += j - end;
|
||||||
}
|
}
|
||||||
count += j - k;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
|
Loading…
Reference in New Issue
Block a user