三角形两边之和大于第三边,将数组排序,利用二分法找到小于两边之和的第三边个数,相加得到最终的结果;
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型
#
import bisect
class Solution:
def validTriangleNumber(self , nums: List[int]) -> int:
# write code here
nums.sort()
res = 0
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
res += bisect.bisect_left(nums[j + 1:], nums[i] + nums[j])
return res