This is a place to put my clutters, no matter you like it or not, welcome here.
0%
300. Longest Increasing Subsequence
Posted onEdited onIn面試Views: Symbols count in article: 1.3kReading time ≈1 mins.
Given an integer array nums, return the length of the longest strictly increasing subsequence.
A subsequence is a sequence that can be derived from an array by deleting some or no elements without changing the order of the remaining elements. For example, [3,6,2,7] is a subsequence of the array [0,3,1,6,2,2,7].
Example 1:
1 2 3
Input: nums = [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4.
Example 2:
1 2
Input: nums = [0,1,0,3,2,3] Output: 4
Example 3:
1 2
Input: nums = [7,7,7,7,7,7,7] Output: 1
nˆ2方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class Solution: def lengthOfLIS(self, nums: List[int]) -> int: ''' [10,9,2,5,3,7,101,18] temp = 2 ret = 1 5>2, temp =5 ,ret = 2 7 >5, temp = 7, ret = 3 101 > 7, temp = 101, ret =4 ''' if len(nums) == 1: return 1 dp = [1] * len(nums) for i in range(1, len(nums)): # 1..8 for j in range(0, i): # 0..i if nums[j]<nums[i]: dp[i]=max(dp[i], dp[j]+1) return max(dp)