classSolution(object):deffindLengthOfLCIS(self, nums):"""
:type nums: List[int]
:rtype: int
"""iflen(nums)<=1:returnlen(nums)# 动态规划
dp=[1]*len(nums)
res =1for i inrange(1,len(nums)):if nums[i-1]<nums[i]:
dp[i]=dp[i-1]+1
res =max(res,dp[i])return res
classSolution(object):deffindLength(self, nums1, nums2):"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: int
"""
s1 ="".join([chr(num)for num in nums1])
s2 ="".join([chr(num)for num in nums2])
n, res =len(s1),0for i inrange(n):for j inrange(res+i+1, n+1):if s1[i:j]in s2:
res = j - i
else:breakreturn res
三、一维DP
classSolution(object):deffindLength(self, nums1, nums2):"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: int
"""# dp[i]:最长公共子数组长度
dp=[0]*(len(nums2)+1)
res=0for i inrange(1,len(nums1)+1):for j inrange(len(nums2),0,-1):if nums1[i-1]== nums2[j-1]:
dp[j]= dp[j-1]+1else:
dp[j]=0
res=max(res,dp[j])return res