0. 题目
三角形,每组 两边之和大于第三边。简化为:两个小边之和大于第三边。
nums 包含的元素为 非负整数,即除了正整数以外,nums 还会包含 0。
故升序排序。 1 2 2 3 4
1. 排序+二分查找 o(n^2logn)
1.1 固定较小的两个边,根据三角形 两边之和大于第三边 这一性质,可以 二分查找 最大的边的范围。
class Solution:
def triangleNumber(self, nums):
n = len(nums)
nums.sort()
ans = 0
for i in range(n - 2): #取不到n-2
for j in range(i+1, n - 1):