用python语言求最长递增子序列。输入序列A=[18,17,19,6,11,21,23,15]。请编程实现求解A中最长递增子序列的动态规划算法,并分析算法时间复杂度
时间: 2023-09-05 16:07:11 浏览: 72
动态规划设计:最长递增子序列.md
以下是Python实现最长递增子序列的代码:
```python
def longest_increasing_subsequence(A):
n = len(A)
dp = [1] * n
for i in range(1, n):
for j in range(i):
if A[j] < A[i]:
dp[i] = max(dp[i], dp[j] + 1)
return max(dp)
A = [18, 17, 19, 6, 11, 21, 23, 15]
print(longest_increasing_subsequence(A))
```
时间复杂度为O(n^2),其中n为序列A的长度。因为需要对每个元素都进行一次遍历,并且每次遍历需要对之前的所有元素进行比较,所以时间复杂度为O(n^2)。
阅读全文