611. 有效三角形的个数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution:
def triangleNumber(self, nums: List[int]) -> int:
nums.sort()
n = len(nums)
result = 0
for i in range(n-2): # 枚举
for j in range(i+1,n-1):
left = j+1
right = n-1
while left<=right:
mid = (left+right)>>1
if nums[mid] < nums[i]+nums[j]:
left = mid + 1
else:
right = mid - 1
result += left - 1 - j
# print(result)
return result