300. 最长递增子序列
python
复制代码
class Solution:
def lengthOfLIS(self, nums: List[int]) -> int:
n = len(nums)
dp = [1] * n
for i in range(n):
for j in range(i):
if nums[j] < nums[i]:
dp[i] = max(dp[j]+1,dp[i])
return max(dp)
674. 最长连续递增序列
python
复制代码
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
n = len(nums)
dp = [1] * n
for i in range(1,n):
if nums[i] > nums[i-1]:
dp[i] = max(dp[i-1]+1,dp[i])
return max(dp)
718. 最长重复子数组
python
复制代码
class Solution:
def findLength(self, nums1: List[int], nums2: List[int]) -> int:
n = len(nums1)
m = len(nums2)
result = 0
dp = [[0]*(m+1) for _ in range(n+1)]
for i in range(1,n+1):
for j in range(1,m+1):
if nums1[i-1] == nums2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
if result < dp[i][j]:
result = dp[i][j]
return result