最长子序列python
时间: 2024-04-18 14:22:09 浏览: 126
python 最长公共子序列
最长子序列(Longest Subsequence)是指在一个序列中找到最长的子序列,该子序列在原序列中的元素顺序保持不变,但可以不连续。在Python中,可以使用动态规划算法来解决最长子序列问题。
以下是一个使用动态规划算法求解最长递增子序列(Longest Increasing Subsequence,简称LIS)的示例代码:
```python
def longest_increasing_subsequence(nums):
n = len(nums)
dp = * n # 初始化dp数组,dp[i]表示以nums[i]结尾的最长递增子序列长度
for i in range(1, n):
for j in range(i):
if nums[i] > nums[j]:
dp[i] = max(dp[i], dp[j] + 1)
return max(dp)
# 示例输入
nums = [10, 9, 2, 5, 3, 7, 101, 18]
# 调用函数求解最长递增子序列长度
result = longest_increasing_subsequence(nums)
print("最长递增子序列长度为:", result)
```
输出结果为:
```
最长递增子序列长度为: 4
```
阅读全文