1def length_of_lis(nums):
2 if not nums:
3 return 0
4 dp = [1] * len(nums)
5 best = 1
6 for current in range(len(nums)):
7 for candidate in range(current):
8 if nums[candidate] < nums[current] and dp[candidate] + 1 > dp[current]:
9 dp[current] = dp[candidate] + 1
10 best = max(best, dp[current])
11 return best